[PL/SQL] procédure stockée sous Orcale8.1

procédure stockée sous Orcale8.1 [PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 18-04-2002 à 15:31:42    

J'essaie desespéremment de créer une procédure stockée...
Quand je mets :
 
create procedure p1 is
begin
null;
end;
 
ca passe, mais dès que j'essaie de mettre du code :
 
create procedure p1 is
begin
select * from cat;
end;
 
(par exemple), oracle me répond :
 
procedure créée mais avec des erreurs de compilation.
 
PS : Il faut bien utiliser EXECUTE p1; pour lancer une procédure ?

Reply

Marsh Posté le 18-04-2002 à 15:31:42   

Reply

Marsh Posté le 20-04-2002 à 14:28:30    

c du pl/sql  
 
create procedure p1 is
variable1 cat%rowtype;  
begin  
select * into variable1 from cat;  
end;
 
 
Aprés tu fais execute p1

Reply

Marsh Posté le 24-04-2002 à 11:42:50    

Cette solution permet de recupérer la valeur d'un champ à l'intérieur de la procédure, mais pas à l'extérieur.
 
J'aimerais pouvoir lancé une procédure stockée à partir d'une servlet, que cette procédure ne retourne un résultat, et que la servlet puisse afficher les lignes sélectionnées.
 
Y'a donc pas moyen qu'une procédure retourne un 'rowset' (comme quand on lance une requete SELECT) ?

Reply

Marsh Posté le 24-04-2002 à 15:02:19    

nan, t'es obligé de boucler mais ca pue.
Utilises plutôt un preparedStatement dans ta servlet.

Reply

Marsh Posté le 24-04-2002 à 15:36:54    

c ce que je fais, j'ai un callableStatement (c presque pareil, ca extends de preparedStatement), comme ceci :
 
CallableStatement cs=connection.prepareCall("{CALL MyProc}" );
return (cs.executeQuery()); // qui retourne un ResultSet
 
mais mon pb n'est pas ds le java, c ds le code de la procedure.
Comment faut-il faire pour qu'une procédure retourne qqch, (genre un cursor) ?

Reply

Marsh Posté le 02-05-2002 à 16:01:15    

ca passe, mais dès que j'essaie de mettre du code :
 
create procedure p1 is
begin
select * from cat;
end;
 
(par exemple), oracle me répond :
 
procedure créée mais avec des erreurs de compilation.
 
PS : Il faut bien utiliser EXECUTE p1; pour lancer une procédure ?  
[/citation]
 
c normal parce ke il ya po le droit de faire des ordres select dans une procedure ke select machin into truc

Reply

Marsh Posté le 02-05-2002 à 17:45:11    

1) par definition une procedure ne retourne rien du tout
2) une fonction retourne quelque chose
3) essaie ceci :
 
FUNCTION f1 RETURN cat%rowtype
IS
variable1 cat%rowtype;  
begin  
select * into variable1 from cat;  
RETURN variable1;
end;
 
n'oublie pas le bloc d'exception non plus :)

Reply

Sujets relatifs:

Leave a Replay

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