Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Ejecutar una cadena dentro de un Stored Procedure

Estas en el tema de Ejecutar una cadena dentro de un Stored Procedure en el foro de Oracle en Foros del Web. Hola, dentro de un stored procedure, he declarado un parámetro output de tipo sys_refcursor, para que mi stored devuelva un cursor. tengo una variable con ...
  #1 (permalink)  
Antiguo 04/08/2009, 10:43
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 3 meses
Puntos: 1
Pregunta Ejecutar una cadena dentro de un Stored Procedure

Hola, dentro de un stored procedure, he declarado un parámetro output de tipo sys_refcursor, para que mi stored devuelva un cursor.

tengo una variable con este valor:
cadena:= 'select campo1, campo2 from tabla1';

quiero saber como puedo ejecutar esta cadena dentro de mi stored, también utilizo el comando 'open cursor for'.

Muchas gracias.

Pdta. Si preguntan por que hago esto, es que dentro del SP, ensamblo una setencia sql de acuerdo a los parámetros recibidos.
  #2 (permalink)  
Antiguo 04/08/2009, 13:44
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Ejecutar una cadena dentro de un Stored Procedure

Código:
SQL> create or replace procedure p1
  2   ( c1 out sys_refcursor)
  3  as
  4    sql_stmt varchar2(30);
  5  begin
  6    sql_stmt := 'select 1 from dual';
  7    open c1 for sql_Stmt;
  8  end;
  9  /

Procedimiento creado.

SQL> variable c refcursor;
SQL> exec p1(:c);

Procedimiento PL/SQL terminado correctamente.

SQL> print c;

         1
----------
         1
Saludos
  #3 (permalink)  
Antiguo 05/08/2009, 09:32
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Ejecutar una cadena dentro de un Stored Procedure

Muchas gracias, esto me sirvio de mucho.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:45.