Erreur sur procedure stockée Oracle

Erreur sur procedure stockée Oracle - SQL/NoSQL - Programmation

Marsh Posté le 10-05-2005 à 09:42:10    

Salut,
 
Je suis en train d'apprendre oracle, et après avoir crée une procedure stockée, je n'arrive pas a l'invoquer a partir de SQL* Plus. J'avais crée des procédures plus complexes mais j'avais toujours le meme probleme (elles ne marchaient pas!!); je me suis alors resolu a en ecrire une carrement simplissime, mais cette dernière également ne marche pas.
J'ai fais des recherches sur Google qui n'ont rien donné, et les manuels ne disent rien sur une telle erreur.
 
J'utilise oracle 8i sur une machine win2kSP4.
 
Voici la procedure stockée:

Citation :


create or replace procedure printline
(comment in out varchar2)
 
is
begin
 
DBMS_OUTPUT.put_line(comment);
end printline;


 
Voici comment je l'invoque a partir de SQL* Plus:
 

Citation :

execute printline('i is procking, and pouring strong');


 
Voici l'erreur:
 

Citation :

ERREUR à la ligne 1 :
ORA-06550: Ligne 1, colonne 17 :
PLS-00363: expression 'i is procking, and pouring strong' ne peut être utilisée comme cible
d'affectation
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored


 
Ou se trouve(ent) l'(es) erreur(s) dans ce que j'ai fais?


---------------
The bible was written by people who believed the earth was flat!
Reply

Marsh Posté le 10-05-2005 à 09:42:10   

Reply

Marsh Posté le 10-05-2005 à 09:57:31    

essaie de spécifier le paramètre "comment" en mode IN, et pas IN OUT


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 10-05-2005 à 10:39:54    

Merci, ca ne balance plus d'erreur!

Reply

Marsh Posté le 10-05-2005 à 10:48:20    

Salut harkonnen,
 
Maintenant j'essaye la meme chose avec une autre procédure stockée (en fait la procedure principale que j'essaye de faire marcher depuis hier aprem!):

Citation :


create or replace procedure myproc
(phone_no in out varchar2)
is  
begin  
phone_no:='+33 '||substr(phone_no,2,1)||'-'||substr(phone_no,3,2)||'-'||substr(phone_no,5,2)||'-'||substr(phone_no,7,2)||'-'||substr(phone_no,9,2);
DBMS_OUTPUT.put_line(phone_no);
end myproc;


Elle peut etre créée en specifiant IN OUT ou OUT, mais pas IN.
En la créant en d'autres mode, la procedure est marquée comme étant "invalid".
Il ne me semble pourtant pas que la syntaxe de la procedure soit fausse.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed