|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
salut,
je pense que j'ai un soucis de syntaxe dans ma requete PL/SQL, mais je ne vois pas d'ou cela pourrait venir. Je suis bloqué la dessus depuis 2 jours, est-ce que quun pourrait m'aider. Comme je débute en PL/SQL je ne connais pas encore les subtilité du langage... Voici mon message d'erreur : Numéro de ligne = 1 Numéro de colonne = 37 Texte d'erreur = PLS-00103: Symbole "DECLARE" rencontré à la place d'un des symboles suivants : ( ; is with authid as cluster compress order using compiled wrapped external deterministic parallel_enable pipelined et voici une partie de la requete que j'aimerais avoir en procédure stocké sur Oracle : Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Si vous voulez mettre votre code en procédure stockée que je suppose sans paramètre, il faut écrire sans DECLARE:
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
Merci, je vais travailler la dessus
|
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 845 ![]() |
si tu crées une procédure (ou une fonction), enlève le mot DECLARE.
la déclaration des variables, curseurs etc se fait directement après le mot clef AS (ou IS). DECLARE n'est valable que pour débuter un bloc anonyme. Code :
EDIT : Damn !!! coiffé au poteau !
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse ! Yorglaa |
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
OUULA ...
Je comprend pas tout ... j'ai enlever le DECLARE, mais maintenant j'ai d'autres erreurs. voila le code modifié (je pense qu'il y a d'autres erreurs) : Code :
|
||
|
|
00
|
|
|
#6 | |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 845 ![]() |
il manque le mot clef IS ou AS (n'importe lequel, ça revient au même)
Citation:
et tu as une parenthèse de trop à la fin de la déclaration de la variable temp
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse ! Yorglaa |
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
... on avance mais ça marche pas encore .
Voici la nouvelle erreur : Numéro de ligne = 1 Numéro de colonne = 37 Texte d'erreur = PLS-00103: Symbole "CREATE" rencontré à la place d'un des symboles suivants : ( ; is with authid as cluster compress order using compiled wrapped external deterministic parallel_enable pipelined Pour ce code : (en entier cette fois ci) Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Vous avez peut-être un problème avec quelque chose qui est avant CREATE PROCEDURE ? Est-ce qu'il y a quelque chose avant CREATE PROCEDURE dans votre buffer sqlplus ou autre ?
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
Je ne connais pas trop SQL plus ,
qu'entendez-vous par Buffer ? Sinon dans mon code il n'y a rien devant CREATE Merci d'avance |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Le buffer sqlplus contient ce qui va être exécuté.
Quel est l'outil que vous utilisez pour créer la procédure PL/SQL ? Vous pouvez essayer avec sqlplus de mettre votre code dans un fichier p.sql en ajoutant un "/" sur une ligne séparée tout à la fin et de l'exécuter avec: Code :
|
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Peut-être que votre outil génére les motd clés suivants "CREATE PROCEDURE statproc IS" d'où l'erreur. Peut-être devez-vous supprimer ces mots clés avec votre outil ?
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
J'utilise ça (je connais pas le nom mais ce n'est pas SQL plus) cependant ça reste dans ORACLE :
j'ouvre Entreprise Manager Console \ Base de Donnée \ " ma base " \ Schema \ " mon objet de base " \ Type de ressource \ Procédure \ ... a cet endroit j'ai la possibilité de faire une procédure Voila |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
C'est ok, j'arrive a lancer SQL Plus Worksheet (c'est bien ça dont on parle ?)
Je me connecte a ma base, il me met dans la partie du bas : connecté Je colle ma requete et la j'ai des erreur et il se déconnecte, voila les erreurs : Connecté. ERROR: ORA-01017: invalid username/password; logon denied Avertissement : vous n'êtes plus connecté à ORACLE. SP2-0640: Non connecté Voila, merci pour l'aide déja apporté |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Je n'ai pas les outils que vous avez cité.
SQLPlus worksheet est une nouvelle interface web à sqlplus. Le sqlplus dont je vous parle est le plus simple, celui en ligne de commande que l'on utilise en général pour faire des installations. Ce sqlplus est utilisable dans une fenêtre de commande cmd.exe. |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
Bonjour,
excusez moi je n'ai pu repondre a votre message avant ce matin, J'ai bien trouvé la version de SQL + dont vous me parlez (tout en ligne de commande), par contre je ne vois pas vraiment comment cela fonctionne ? Merci d'avance |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Pour les premiers pas, avec sqlplus voir:
http://www.iro.umontreal.ca/~lokbani...08/demo08.html Pour exécuter votre script, voir mon message du Mar Mar 14, 2006 16:27. |
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
Ok,
j'ai testé une partie de ma requete avec SQL + (la petite partie du select au début) , ça fonctionne bien Par contre si je copie mon bloc complet comme cité mardi, je n'ai aucunes réponses de SQL +... Je creuse, merci encore pour votre aide |
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 13 ![]() |
Bonjour;
Aprés le point-virgule final Ajouter "/" au début de la ligne suivante et réessayer [code] . . . END; / [code][/code] |
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 13 ![]() |
Désolé pour la faute
je fais mes premiers pas sur le forum aprés le ; final ajouter "/" au début de la ligne suivante et réessayer |
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : octobre 2005 Messages : 21 ![]() |
Alors, ça y est SQL + me dis que ma requete réussi
J'avais effectivement oublié le fameux " / " (que je sais pas a quoi il sert, mais il sert...) Maitenant j'ai plus qu'a coder mon appel a cette Procédure en PHP, je sais pas comment faire , mais on va bien voir ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com