Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Oracle > ¿Como ejecutar el contenido de una variable?
-Foros de debate

Oracle
Lista de foros | Lista de mensajes de este foro

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: ¿Como ejecutar el contenido de una variable?
Enviado por danzinger el día 20 de junio de 2005

con un execute immediate de la cadena 'exec nomprocedure' no te funciona?

 
Re: Re: ¿Como ejecutar el contenido de una variable?
Enviado por jcrazuri el día 29 de junio de 2005

BEGIN
/* Ejemplo para un SP con C1 Y C2 com param. de retorno y los demas de entrada */

A_MENSAJE := 'HOLA MUNDO';
SQL_TEXT := 'BEGIN SP_XXXX(:C1, :C2, :C3, .., :CN); END;';
EXECUTE IMMEDIATE SQL_TEXT
USING OUT P_1, OUT P_2, P_3, ..., P_N;

/* Ejemplo para una funcion donde el resultado */

SQL_TEXT := 'BEGIN :S_1 := FN_XXX (:C1, :C2, ... , :CN ); END;'

EXECUTE IMMEDIATE SQL_TEXT
USING OUT P_S, P_1, P_2, P_3 ...... PN;
/* Aq
END;

 
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;

/********************************************************************/

Alguien sabe cual puede ser el problema. Saludos y gracias.

 




Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network