Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
¿Como ejecutar el contenido de una variable?
Enviado por Claudio el día 17 de junio de 2005
Antes que todo hola y gracias por cualquier ayuda respecto del tema.
Mi problema es algo complejo y he buscado al respecto por lo que recurro a la ayuda de quienes se manejan mas que yo en Oracle.
¿Como ejecuto el contenido de una variable, SI lo que deseo ejecutar es un procedimiento o funcion?
lo que he investigado es usando:
"EXECUTE IMMEDIATE variable USING parametro1;"
y otra alternativa es usando el DBMS_open_cursor, DBMS_SQL.parse y DBMS_SQL.close_cursor estas tres cosas en conjunto.
PERO el problema es que en ambos casos SOLO permiten sintaxis SQL simple... como: SELECT, INSERT y similar pero no un PROCEDURE o FUNCTION...
alguien podria darme algun camino a investigar?¿
Re: Re: Re: ¿Como ejecutar el contenido de una variable?
Enviado por laya el día 20 de junio de 2006
Hola. Tengo el mismo problema.
Buscando en el foro encontre esta respuesta, sin embargo cuando hago lo detallado me genera el siguiente error y no se como solucionarlo.
Error: ORA-03113: end-of-file on communication channel
El codigo que ejecuto lo detallo a continuacion:
/*************************************************************/
declare
nombre_sp varchar2(50) := \'Altas.InsertarRetenciones\';
consulta_sql varchar2(200);
--Declaro una variable REF CURSOR del package Altas
param Altas.ref_cursor;
begin
-- Ejecuto la fn que devuelve un REF CURSOR
consulta_sql := \'BEGIN :param1 := \' || nombre_sp || \' (); END;\';
execute immediate consulta_sql USING OUT param;
end;