30/06/2008, 09:34
|
| | Fecha de Ingreso: junio-2008 Ubicación: D.F.
Mensajes: 62
Antigüedad: 16 años, 5 meses Puntos: 1 | |
Respuesta: Parámetros de un procemiento: admite variables de un cursor? QUE TAL,
PUES COMO MENCIONA MATANGA ES ALGO MUY COMÚN. A ESTO SE LE LLAMA REF_CURSORS. TE DEJO UN EJEMPLO DE COMO APLICARLOS.
CREATE OR REPLACE PACKAGE NOMBRE_PAQUETE IS
TYPE NOMBRE_REFCURSOR IS REF CURSOR; -- DECLARAS EL TIPO DE REF CURSOR
PROCEDURE proc_ori;
PROCEDURE proc_des (pValores IN NOMBRE_REFCURSOR);
END NOMBRE_PAQUETE;
/
CREATE OR REPLACE PACKAGE BODY NOMBRE_PAQUETE IS
--===========================================
-- PROCEDIMIENTO DONDE ARMAS TUS PARÁMETROS
--===========================================
PROCEDURE proc_ori IS
vrParam NOMBRE_REFCURSOR;
BEGIN
-- TU CÓDIGO
-- ABRIR EL REF CURSOR CON EL QUERY QUE CONTENGA TUS PARÁMETROS
OPEN vrParam FOR
SELECT 'PEPITO' NOMBRE, 'ALTO' ATR1, 'GUAPO' ATR2
FROM DUAL;
proc_des (vrParam);
EXCEPTION
WHEN OTHERS THEN
-- TUS EXECPCIONES
END proc_ori;
--===========================================
-- PROCEDIMIENTO DONDE RECIBES LOS PARÁMETROS
--===========================================
PROCEDURE proc_des(pValores IN NOMBRE_REFCURSOR) IS
vvNombre VARCHAR2(50);
vvAtr1 VARCHAR2(50);
vvAtr2 VARCHAR2(50);
BEGIN
-- OBTENER LOS PARÁMETROS DEL REF CURSOR
LOOP
FETCH pValores INTO vvNombre, vvAtr1, vvAtr2;
EXIT WHEN pValores%NOTFOUND;
END LOOP;
-- TU CÓDIGO DONDE USARÁS LOS PARÁMETROS.
EXCEPTION
WHEN OTHERS THEN
-- TUS EXECPCIONES
END proc_des;
END NOMBRE_PAQUETE;
/
ESPERO TE SEA DE UTILIDAD. |