2009-05-08 10 views
11

Aquí el paquete ..¿Cómo ejecutar el procedimiento?

CREATE OR REPLACE PACKAGE G_PKG_REFCUR AS 
    TYPE rcDataCursor IS REF CURSOR; 
END; 

Consideremos el PROC ..

Create procedure gokul_proc(
    pId in number, 
    pName in varchar2, 
    OutCur OUT G_PKG_REFCUR.rcDataCursor) is 
BEGIN 
    Open OutCur For 
     select * from gokul_table ob 
     where ob.active_staus-'Y' AND ob.id=pId AND ob.name=pNname; 
END; 

Aquí está mi pregunta: ¿Cómo puedo ejecutar este procedimiento?

Si no hay un parámetro OutCur, entonces puede ejecutar como esto ..

EXEC gokul_proc(1,'GOKUL'); 

pero, el problema es OutCur. No sé qué valor pasar aquí.

Por ejemplo

EXEC gokul_proc(1,'GOKUL', ??????); 

que sólo tiene que saber cuál es el valor de pasar como un argumento para el procedimiento.

+1

Aunque me fijo parte del formato, considere la edición de su pregunta para que se utiliza más adecuado Inglés, en lugar de "duno", "pls", etc. –

+0

en un lado nota, creo que ha escrito mal un "-" en la cláusula where, por ejemplo ob.active_staus = 'Y' –

Respuesta

21

En SQL Plus:

VAR rc REFCURSOR 
EXEC gokul_proc(1,'GOKUL', :rc); 
print rc 
Cuestiones relacionadas