Ayuda con 2 SYS_RefCursor en Oracle

Expert@s por fa su ayuda con lo siguiente:

Tengo dos consultas dinámicas que en ambos casos las columnas seleccionadas son las mismas pero son diferentes en el from y where ya que una hace referencia a una tabla Persona y la otra a otra tabla Empresa, lo dinámico con parámetros tío ":Variable" en el where de ambos querys al realizar UNION de esta forma

"OPEN O_CORRESP_BUSCADA_CTY FOR
V_QUERY || ' UNION ' || V_QUERYEMP;"

Me da el siguiente error:

ORA-01008: not all variables bound
ORA-06512: at "ANH_DOC.PDOC_BANDEJA", line 1520
ORA-06512: at line 21

Ahora quiero ejecutar ambas consultas con diferentes sys_recursor pero no se si es posible y de serlo como se puede realiza una union entre los dos cursores.

1 Respuesta

Respuesta
1

Te falta el "using" (Ejemplo 2)o montarlo de otra forma (Ejemplo 1).

Te paso 2 ejemplos:

Ejemplo 1:
Procedure recorrer_orden (p_nro_orden renglones.nro_orden%type) is

Begin

For reg in (Select nro_renglon, codigo_pro, precio * cantidad importe from renglones where nro_orden = p_nro_orden)

Loop

Imprimir_renglon(reg.nro_renglon, reg.codigo_pro, reg.importe);

End loop;

End;

Ejemplo 2: Uso sin utilizar el FOR:
declare

type my_curs_type is REF CURSOR;

curs my_curs_type;

str varchar2(200);

ret varchar2(20);

val varchar2(20);

begin

str := 'select msg from msg where msg = :b1';

val := 'Bye';

OPEN curs FOR str USING val;

FETCH curs INTO ret;

dbms_output.put_line('Value fetched from table: '||ret);

CLOSE curs;

end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas