1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| PROCEDURE INSERT_XML(P_Fichier IN VARCHAR2) IS
LXML_FILE CLOB;
LCTX_CTX DBMS_XMLSave.CTXType;
LFIC_Fichier BFILE := BFILENAME('DIRIMPORT', r'||P_Fichier||'.xml');
LINT_Rows INT;
LINT_vdest INT := 1;
LINT_VSRC INT := 1;
LINT_vWarn INT;
LINT_vLang INT := 0;
BEGIN
IF DBMS_LOB.FILEEXISTS(LFIC_Fichier)<>0 THEN
DBMS_LOB.FILEOPEN(LFIC_Fichier);
DBMS_LOB.OPEN( LFIC_Fichier );
DBMS_LOB.CREATETEMPORARY( LXML_FILE, TRUE, DBMS_LOB.SESSION );
DBMS_LOB.LOADCLOBFROMFILE ( LXML_FILE, LFIC_Fichier,DBMS_LOB.LOBMAXSIZE,
LINT_vdest,LINT_vsrc,0,LINT_vLang,LINT_vWarn);
DBMS_LOB.CLOSE( LFIC_Fichier );
LCTX_CTX := DBMS_XMLSave.newContext(P_Fichier);
DBMS_XMLSAVE.SETDATEFORMAT(LCTX_CTX,'dd/MM/yyyy');
LINT_Rows:=DBMS_XMLSave.insertXML(LCTX_CTX,LXML_FILE);
DBMS_XMLSave.closeContext(LCTX_CTX);
END IF;
EXCEPTION WHEN OTHERS THEN
DBMS_XMLSave.closeContext(LCTX_CTX);
IF SQLERRM<>'ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException: No rows to modify -- the row enclosing tag missing. Specify the correct row enclosing tag.' THEN
-- Je met à jour mon log ...
END IF;
END; |
Partager