PL/SQL curseur - SQL/NoSQL - Programmation
Marsh Posté le 20-06-2005 à 21:27:14
je veux pas paraitre grotesque
mais je pense que ça ne marchera pas!
le pl sql c'est pour les procédures stockées par exemple, ou les packages qui contiennent des fonctions et procédures!
donc perso je te conseille de t'orienté vers cela au lieu de passé par un fichier, car tu as quand mm un sgbd qui t'offre un grand nombre de possiblité, alors merci bien, mais passé par sqlplus ça marchera jms!
donc tu fais une procédure stockée et tu y met ton code plsql...
Marsh Posté le 20-06-2005 à 21:40:37
Code :
|
Voila tu dois t'orienté vers cela...
en aucun cas passé par un fichier, tu peux le faire directement par ORACLE...
si tu as des questions ou besoin d'aide concernant oracle, tu peux me contacté à l'adresse email suivante: laurent.bindels@swing.be
si tu veux également tu peux également passé des parametres a cette procédure comme si on le ferait dans une fonction du C!
il est également possible de retourné une valeur, dans ce cas la on ne fait pas une procédure mais une fonction dans un package... Voila j'espere que tu t'en sortira avec cela.
mais en aucun cas fait comme tu as fais, je ne pense mm pas que ça marcherait! surtout si c'est destiné a passé par le web...
faut te dire que le client qui va passé par son navigateur, il n'a pas de client oracle, donc aucune possibilité de lancé sqlplus...
pour cela tu dois gardé cela sur le serveur, d'ou la nécéssité d'avoir une procédure stockée qui va gardé la logique de ton application.
Ensuite il suffira simplement depuis un langage de programmation d'appelé des fonctions permettant d'exploité oracle tout simplement, perso je ne l'ai jamais fait avec php, mais ça doit existé comme pour mysql...
Marsh Posté le 21-06-2005 à 09:47:21
SAlut,
tout d'abord je voulais te remercier pour ton aide! c'est vraiment super sympa!
effectivement le TYPE record, j'avais pas vu ca... je connaissais juste %TYPE et %ROWTYPE! au temps pour moi.
bon le truc c que sqlplus est installé, et en l'occurence l'applciation est lancée depuis el serveur, où sqlplus est installé. Donc a priori en lancant depuis le shell sqlplus usr/pass@instance @curseur, ca devrait pouvoir marcher je pense...je vais aller essayer de ce pas
en tout cas vraiment merci... c pas facile quand obn commence tout juste
Nachi
PS: en passant par les fichiers, ca marche, mais c'est vraiment tres tres tres long!
Marsh Posté le 21-06-2005 à 11:53:15
Bon alors j'ai essaye ta procedure en adaptant a mes besoins
sqlplus -s usr/password@PER @/home/asavoy/dataware/WebTools/SQL/sacd/curseur.sql
Warning: Procedure created with compilation errors.
Marsh Posté le 22-06-2005 à 16:24:37
Fais voir le code de ta procédure car tu as certainement complété celle de moi23372...
Marsh Posté le 02-11-2005 à 11:11:05
J'ai essayé de mettre en pratique les conseils donnés dans ce poste en faisant :
Code :
|
Et je me retrouve avec une erreur :
Code :
|
Marsh Posté le 02-11-2005 à 11:16:14
Enlève le %ROWTYPE ...
Et puis utilise un autre nom de variable que RECORD (c'est un mot clé de PL/SQL).
Marsh Posté le 20-06-2005 à 17:21:39
Bonjour à tous,
je tiens à préciser que je débute dans le PL/SQL!!
voila ma config:
apache 1.3
Oracle 9i
PHP 5.0 (pour le moment impossibilite de compiler avec --with-oci et --with-oracle)
voici ce que je veux faire:
j'ai une table commande sur laquelle je dois recuperer des valeurs (c_appli, c_cde, c_post_cde). Pour chacun de ces enregistrements, je dois vérifier si le triplet existe dans la tale facture, et s'il existe, je dois faire une maj de la table.
Je dispose de 2 methodes (soit passer par des fichiers, ce qui est tres couteux en temps, j'ai essayé )
soit je pense essayer d'ecrire un curseur dans un fichier que j'appelerai avec sqlplus.
j'ai ecrit ceci:
si vous pouviez m'aider a remplir le milieu ce serait vraiment super sympa,je galere un peu la...
Merci et desole si cette question peut paraitre stupide, elle ne l'est pas pour moi
Message édité par nachi2 le 20-06-2005 à 17:59:18