44 votes

Comment tester une procédure stockée Oracle avec le type de retour RefCursor ?

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.

71voto

Justin Cave Points 114578

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.

7voto

Hernaldo Gonzalez Points 309

Dans Toad 10.1.1.8 j'utilise :

 variable salida refcursor
exec MY_PKG.MY_PRC(1, 2, 3, :salida)  -- 1, 2, 3 are params
print salida

Ensuite, exécutez en tant que script.

4voto

user1118468 Points 373
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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X