INSERTAR TEXTO LARGO EN BASE DATOS

31/07/2007 - 08:13 por Edison Abarca Tapia | Informe spam
Hola, necesito leer unos 5 millones aprox. de documentos WORD, los cuales
tienen un formato Nombre paciente, Doctor, Prueba, Informe.

He realizado un programa que lee sin problema los campos que me interesan, y
los inserto en la base de datos de oracle.

En la tabla hay un campo en formato LONG que es donde guardo el cuerpo del
informe que es texto en formato enriquecido y por lo general es un texto un
poco largo, consta de almenos 2 páginas.

El problema surge cuando intento insertar este texto en la base de datos,
hago un INSER INTO TABLA
Pero no me permite insertar, y aparece el siguiente error:
ORA-00972 Identificador demasiado largo.

Es verdad que el texto que inserto es muy largo, por favor como debo
insertar texto largo en la base de datos?.

Muchas gracias, espero vuestras sugerencias.
Un abrazo a todos.

Preguntas similare

Leer las respuestas

#6 Edison Abarca Tapia
01/08/2007 - 08:11 | Informe spam
En oracle utilizo lo siguiente:

CREATE OR REPLACE PROCEDURE ADD_CLOB(p_report_key IN
M_REPORT_RTF.REPORT_KEY%TYPE,

p_report_text IN VARCHAR2, p_flag IN NUMBER) as

g_clob clob;


BEGIN

if P_FLAG=0 then

insert into M_REPORT_RTF (REPORT_KEY, REPORT_TEXT) values (p_report_key,
empty_clob() ) returning REPORT_TEXT into g_clob;

dbms_lob.write( g_clob,length(p_report_text), 1,p_report_text);

else

select REPORT_TEXT into g_clob from M_REPORT_RTF where
report_key=p_report_key for update;

dbms_lob.writeappend( g_clob, length(p_report_text), p_report_text);

end if;

END;

/

He creado una clase, en la cual utilizo MS Enterprise Library, y paso los
parámetros pertinentes al procedimiento de oracle.

Ya lo he conseguido, al leer directamente el documento WORD, tenia
problemas, lo que hice utilizar un objeto COM y por codigo convertir el
formato del dcoumento a RTF y luego insertar en la base de datos.

El único detalle es que va lento, pero de momento funciona, desde luego
seguiré investigando para que vaya rápido.

un saludo a todos por vuestra ayuda.
Edison



"ANT1" escribió en el mensaje
news:
¿Quizas el mapeo que no defines el tipo adecuado de dato?
Respuesta Responder a este mensaje
#7 Jordi Maycas
03/08/2007 - 08:34 | Informe spam
se me ocurre algo... piensa que en vez de dos paginas de texto , quisieras
poner una imagen; por tamaño en kbs, es mas grande la informacion de una
imagen, asi q sirve de ejemplo.

Porque no insertar el .doc o lo que sea, como objeto OLE, y listo!?

Yo use eso, para crear una pagina de estas tipo perfiles de gente, xico
conoce xica, y demas... y todos iban con sus fotos, y lo metia en una base
de datos de Access mismo... en tu caso Oracle (menos problema).

"ANT1" escribió en el mensaje
news:
Hola Edison

No te se decir exactamente como solucionarlo, ya que no se como mapeas
los objetos en la base de datos ni he trabajado con Oracle lo
suficiente.

Yo a la hora de solucionar ese problema encontre por internet que a la
hora del mapeo debia definir el tipo de columna de la base de datos en
lugar de como string o char[] como "StringClob" (en el mapeo de la
clase, insisto, en la base de datos postgres es un "text"). Con esto
se me soluciono ese mismo problema que tienes tu, ya que a la hora de
añadir un texto muy largo a la BD esta me daba error. Eso si no se si
llegue a insertar un texto enriquecido y tan largo alguna vez.

Te recomiendo que pruebes a ver si te vale o que mires mas el
"StringClob".

Un saludo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida