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

Bulk Collect con Insert y tabla dinámica

Estas en el tema de Bulk Collect con Insert y tabla dinámica en el foro de Oracle en Foros del Web. Hola amigos, soy muy nuevo en esto de los foros, me presento. Mi nombre es Raúl y tengo una gran duda y que ya casi ...
  #1 (permalink)  
Antiguo 27/11/2012, 10:59
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Exclamación Bulk Collect con Insert y tabla dinámica

Hola amigos, soy muy nuevo en esto de los foros, me presento. Mi nombre es Raúl y tengo una gran duda y que ya casi caigo en pánico porque no le hayo solución a mi problema.
Trabajo con Oracle 10g y Pl/Sql y tengo el siguiente inconveniente:

Tengo el siguiente bloque de código:

Código SQL:
Ver original
  1. OPEN cc_llena_mensual;
  2.  
  3.           LOOP
  4. FETCH cc_llena_mensual bulk collect INTO lv_row_id, lv_id_ser,lv_tipo_sva_amx,
  5.              lv_tecnologia,lv_categoria,lv_subpro,lv_tipo_navegacion LIMIT 200;
  6.                
  7.                    
  8.        LV_QUERY:='forall i in 1..lv_row_id.count  save exceptions';      
  9.      LV_QUERY:=LV_QUERY||' insert into rcc_sma_'||pv_tabla_mensual||' (id_servicio,tipo_sva_amx,tecnologia,categoria,subproducto,tipo_navegacion)';
  10.        LV_QUERY:=LV_QUERY||' values(lv_id_ser(i),lv_tipo_sva_amx(i),lv_tecnologia(i),lv_categoria(i)
  11.                 ,lv_subpro(i),lv_tipo_navegacion(i));';
  12.  
  13.        
  14.              
  15.    EXECUTE immediate LV_QUERY;
  16.                  exit WHEN cc_llena_mensual%notfound;  
  17.    
  18.                  END loop;
  19.  
  20.           commit;
  21.               close cc_llena_mensual;
Al compilarlo todo bien, pero al ejecutar me da el típico error:
ORA-00900: invalid SQL statement

He intentado hacer de varias formas esta parte pero no consigo pasarle la tabla como parametro.
Cuando ejecuto el bloque de codigo que se genera en el String aparte y dandole la tabla dentro del codigo, todo bien corre de maravilla, pero al hacerlo en ese bloque de String me da ese error.
Espero su pronta ayuda. Muchas gracias de antemano.

Última edición por gnzsoloyo; 27/11/2012 a las 13:28 Razón: Código SQL mal etiquetado
  #2 (permalink)  
Antiguo 27/11/2012, 13:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bulk Collect con Insert y tabla dinámica

Una buena forma de detectar errores en sql dinamico es hacer una impresión (dbms_output.put_line) de lo que tiene la variable LV_QUERY.
Puede ser que te falte un espacio o se te vaya un carácter de mas en tu concatenación.
Una vez corregido, habilitas nuevamente el execute immediate y eliminas el resultado de la impresión.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: 10g, plsql, sql
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 12:21.