RE:Agregar datos de un xml a una tabla de oracle
SERGIO
AGRADEZCO TUS COMENTARIOS
ANEXO EL CODIGO DE LOS STORED
Y EL MENSAJE DE ERROR
LA LINEA DONDE SE GENERA EL ERROR ES LA QUE TIENE LOS ASTERISCOS
PROCEDURE DIRECTORIO(MONEDAS_C OUT T_CURSOR)
IS
dest_clob clob;
archivo_in bfile;
tamaño number;
inicio_destino integer:=1;
inicio_origen integer:=1;
juego_caracteres number:=0;
contexto_idioma number:=0;
aviso number:=0;
BEGIN
archivo_in:= bfilename('XML_DIR','datos.xml');
dbms_lob.fileopen(archivo_in,dbms_lob.file_readonly);
if (dbms_lob.fileexists(archivo_in)=1) then
tamaño:=dbms_lob.getlength(archivo_in);
contexto_idioma:=1;
dbms_lob.createtemporary(dest_clob,true);
dbms_lob.loadclobfromfile(dest_clob,
archivo_in,
tamaño,
inicio_destino,
inicio_origen,
juego_caracteres,
contexto_idioma,
aviso
);
dbms_lob.fileclose(archivo_in);
Agregar(dest_clob,'TB_MAXTRA');
commit;
end if;
open MONEDAS_C for
select *
from TB_MAXTRA;
END DIRECTORIO;
PROCEDURE Agregar(documentoXML in clob, nomTabla in varchar2)
IS
contextAgregar dbms_xmlsave.ctxType;
numFilas number;
BEGIN
contextAgregar:=dbms_xmlsave.newContext(nomTabla);
dbms_xmlsave.clearUpdateColumnList(contextAgregar);
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'CD_CLIENTE');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'CD_VEHICULO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'CD_MEDIO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'AGENCIA');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'CLIENTE');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'REPRESENTANTE');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'MARCA');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'PRODUCTO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'VEHICULO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'BLOQUEHORARIO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'ESPACIO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'CAMPANIA');
BMS_XMLSAVE.setUpdateColumn(contextAgregar,'EXHIBICION');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'MONITOREO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'FECHA');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'HORA');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'INVERSION_MAX');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'INVERSION_IBPPESOS');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'SPOTS');
DBMS_XMLSAVE.setUpdateColumncontextAgregar,'DURACION');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'TIPOCAMBIO');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'MONEDA');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'TARGET');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'T35');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'T36');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'T37');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'T38');
DBMS_XMLSAVE.setUpdateColumn(contextAgregar,'T34');
****** numFilas:=dbms_xmlsave.insertXML(contextAgregar,documentoXML);
dbms_xmlsave.closeContext(contextAgregar);
END Agregar;
AHORA EL MENSAJE DE ERROR QUE ARROJA ES EL SIGUIENTE
ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.oracleXMLSQLException: start of root element expected.
ORA-06512: at "SYS.DBMS_XMLSAVE", line 65
ORA-06512: at "TRADING.CARGAR_BASE_TRADING", line 115
ORA-06512: at "TRADING.CARGAR_BASE_TRADING", line 146
ORA-06512: at line 3
DONDE "TRADING.CARGAR_BASE_TRADING" ES EL PACKAGE
ESPERO Y CON ESTO ME PUEDAS AYUDAR
SALUDOS