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

Problema al ejecutar un PROCEDURE

Estas en el tema de Problema al ejecutar un PROCEDURE en el foro de Oracle en Foros del Web. SET SERVEROUTPUT ON; declare VAR VARCHAR2(20000) := '''NEGRO'', 30 , ''NEGRO'', 1, 1, ''1234'', ''I'''; vva_sql VARCHAR2(20000); VVA_EXE VARCHAR2(20000); begin VVA_EXE := 'APPLGTH.ONE_SU_COLOR_PIEL.SP_SU_EJECUTA_ACCION('| |VAR||','||vva_sql||')'; EXECUTE ...
  #1 (permalink)  
Antiguo 24/07/2012, 09:06
 
Fecha de Ingreso: septiembre-2011
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 1
Problema al ejecutar un PROCEDURE

SET SERVEROUTPUT ON;
declare

VAR VARCHAR2(20000) := '''NEGRO'', 30 , ''NEGRO'', 1, 1, ''1234'', ''I''';
vva_sql VARCHAR2(20000);
VVA_EXE VARCHAR2(20000);

begin

VVA_EXE := 'APPLGTH.ONE_SU_COLOR_PIEL.SP_SU_EJECUTA_ACCION('| |VAR||','||vva_sql||')';

EXECUTE IMMEDIATE VVA_EXE
dbms_output.put_line('RESULTADO '||VVA_EXE);

end;


Buenos Dias, lo que pasa es que tengo este procedure y ocupo ejecutarlo de forma dinamica, osea armando una cadena y ejecutandolo.

Alguien sabe como ejecutar dicha cadena sin que de error, ya que al estar concatenado el vva_sql cuando me arma el string, me lo deja al final con un ", espacio vacio"

Gracias por la yuda..! :D

Pd: tambien probe colocando el USING y no funciono ;(
  #2 (permalink)  
Antiguo 24/07/2012, 10:19
 
Fecha de Ingreso: septiembre-2011
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema al ejecutar un PROCEDURE

Ya encontre la solucion ¬¬

SET SERVEROUTPUT ON;
declare
vva_sql VARCHAR2(20000);
SQLA VARCHAR2(20000) := 'SU_COLOR_PIEL';
VAR VARCHAR2(20000) := '''NEGRO'', 30 , ''NEGRO'', 1, 1, ''1234'', ''I''';

begin


EXECUTE IMMEDIATE
'BEGIN
APPLGTH.ONE_'||SQLA||'.SP_SU_EJECUTA_ACCION('||VAR ||', :var);
END;'
USING out vva_sql;

dbms_output.put_line('RESULTADO '||vva_sql);

end;

en el using se debe colocar el tipo de dato(entrada o salida) y ya :D

Etiquetas: funcion, procedure, sql, formulario
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 17:06.