¿Como ejecutar el contenido de una variable?

Claudio
20 de Junio del 2006
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?¿

danzinger
20 de Junio del 2006
con un execute immediate de la cadena 'exec nomprocedure' no te funciona?

jcrazuri
20 de Junio del 2006
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;