DBMS_SQL stored procedure dinámico
Cómo puedo usar el DBMS_SQL para construir un stored procedure que me devuelva los
En la página tengo un combo de TIPO con los siguientes 3 valores: EMPRESAS, PERSONAS y TODOS
También hay un combo PRIORIDAD con los siguientes 3 valores: ALTA, BAJA y TODOS
Por lo que puede haber varias combinaciones de consulta.
COMO PUEDO USAR EL DBMS_SQL PARA QUE DENTRO DE UN STORED PROCEDURE SOLO CON UN CURSOR PUEDA CONSTRUIR EL QUERY DINAMICO
Si selecciono TIPO=PERSONAS y PRIORIDAD=TODOS, el query serÃa:
SELECT * FROM tablaclientes [where tipo='PERSONAS']
Si selecciono TIPO=TODOSy PRIORIDAD=TODOS, el query serÃa:
SELECT * FROM tablaclientes [ ]
En la página tengo un combo de TIPO con los siguientes 3 valores: EMPRESAS, PERSONAS y TODOS
También hay un combo PRIORIDAD con los siguientes 3 valores: ALTA, BAJA y TODOS
Por lo que puede haber varias combinaciones de consulta.
COMO PUEDO USAR EL DBMS_SQL PARA QUE DENTRO DE UN STORED PROCEDURE SOLO CON UN CURSOR PUEDA CONSTRUIR EL QUERY DINAMICO
Si selecciono TIPO=PERSONAS y PRIORIDAD=TODOS, el query serÃa:
SELECT * FROM tablaclientes [where tipo='PERSONAS']
Si selecciono TIPO=TODOSy PRIORIDAD=TODOS, el query serÃa:
SELECT * FROM tablaclientes [ ]
Busca documentación sobre REF_CURSOR
Un ejemplo un poco tosco:
CREATE OR REPLACE PACKAGE Prueba As
TYPE tc_Prueba IS REF CURSOR;
FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba;
END Prueba;
CREATE OR REPLACE PACKAGE BODY Prueba As
FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba
IS
v_Registros tc_Prueba;
BEGIN
OPEN v_Registros FOR SELECT *
FROM MyTable
WHERE ID = aDato;
RETURN(v_Registros);
END Buscar;
Un ejemplo un poco tosco:
CREATE OR REPLACE PACKAGE Prueba As
TYPE tc_Prueba IS REF CURSOR;
FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba;
END Prueba;
CREATE OR REPLACE PACKAGE BODY Prueba As
FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba
IS
v_Registros tc_Prueba;
BEGIN
OPEN v_Registros FOR SELECT *
FROM MyTable
WHERE ID = aDato;
RETURN(v_Registros);
END Buscar;
