Bonjour,

Le titre est explicite, je souhaite passer un CURSOR en paramètre d'une procédure.

Je suis sous Oracle 10g.

J'ai écrit ce qui suit, mais j'ai un soucis de TYPE.
Quand je met "CURSOR" à la place de "SYS_REFCURSOR", ça ne marche pas non plus.

Le code en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SET serveroutput ON
 
DECLARE
 
  CURSOR INTERNAL_PATH_CURSOR IS
    Select 1 as id from dual
    union
    Select 10 from dual
  ; 
 
  myId INTEGER;
 
  PROCEDURE printRow( cur_lig IN SYS_REFCURSOR) IS
  BEGIN
     LOOP
       FETCH cur_lig INTO myId ;
       EXIT WHEN cur_lig%NOTFOUND ;
       dbms_output.put_line( 'Found : ' || myId ) ;
     END LOOP ;
  End;
 
BEGIN
 
  dbms_output.put_line( 'Trying procedure with cursor ...' ) ;
  printRow(INTERNAL_PATH_CURSOR);
 
END;
/
Merci à vous pour votre aide.