Je cherche une bonne explication sur la façon de tester une procédure stockée Oracle dans SQL Developer ou Embarcardero Rapid XE2. Merci.
Réponses
Trop de publicités?Quelque chose comme
create or replace procedure my_proc( p_rc OUT SYS_REFCURSOR )
as
begin
open p_rc
for select 1 col1
from dual;
end;
/
variable rc refcursor;
exec my_proc( :rc );
print rc;
fonctionnera dans SQL*Plus ou SQL Developer. Je n'ai aucune expérience avec Embarcardero Rapid XE2, donc je ne sais pas s'il prend en charge les commandes SQL*Plus comme celle-ci.
create or replace procedure my_proc( v_number IN number,p_rc OUT SYS_REFCURSOR )
as
begin
open p_rc
for select 1 col1
from dual;
end;
/
puis écrivez une fonction lie this qui appelle votre procédure stockée
create or replace function my_proc_test(v_number IN NUMBER) RETURN sys_refcursor
as
p_rc sys_refcursor;
begin
my_proc(v_number,p_rc);
return p_rc;
end
/
alors vous pouvez exécuter cette requête SQL dans l'éditeur SQLDeveloper.
SELECT my_proc_test(3) FROM DUAL;
vous verrez le résultat dans la console, cliquez dessus avec le bouton droit de la souris, cliquez sur la vue d'enregistrement unique et modifiez le résultat. Vous pouvez voir tous les enregistrements renvoyés par le curseur de référence.