12/11/2010, 05:38
|
| | Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes Puntos: 0 | |
Lentitud extrema al grabar un CLOB. Urgente Hola. Recurro a vosotros porque es un tema muy urgente y no encuentro salida por más que busco soluciones. Os cuento:
Desde una aplicación Weblogic con Oracle, tengo que generar un fichero .txt (se lanza anualmente) con aprox 10.000 filas y 2000 caracteres por fila.
He creado un PLSQL que tiene un cursor encargado de obtener los datos ya formateados. Está optimizado con índices y tarda un máximo de 20''.
Mi idea es meter esos datos en un campo CLOB y devolverlo al ejb que lo invoca.
El problema se encuentra al grabar en el CLOB, que tarda del orden de 15 minutos.
¿Hay alguna otra forma que se os ocurra?
-- Se inserta el nuevo registro inicializado
INSERT INTO HISTORICO (COD_ENVIO,FICHERO) VALUES (nCodigo,EMPTY_CLOB();
SELECT FICHERO INTO clob_pointer FROM HISTORICO WHERE COD_ENVIO =nCodigo FOR UPDATE;
DBMS_LOB.OPEN (clob_pointer,DBMS_LOB.LOB_READWRITE);
bolPunteroClobAbierto := TRUE;
LOOP
FETCH MICURSOR INTO r_Cursor;
EXIT WHEN (MICURSOR %NOTFOUND);
DBMS_LOB.WRITEAPPEND(clob_pointer, LENGTH(r_Cursor.DATOS), r_Cursor.DATOS);
END LOOP;
Muchisimas gracias de antemano
Última edición por pange; 12/11/2010 a las 05:43 |