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
|
create or replace
PROCEDURE "CREATEXMLFILE" (c_DirectoryName VARCHAR2, c_FIleName VARCHAR2, c_XMLContent CLOB) AS
f_file_id UTL_FILE.FILE_TYPE;
v_file_location VARCHAR2(256) := c_DirectoryName;
v_LogContent VARCHAR2(4000);
v_XMLTextSize NUMBER;
v_XMLextracted CLOB;
BEGIN
v_XMLextracted := c_XMLContent;
v_XMLTextSize := DBMS_LOB.GETLENGTH(v_XMLextracted);
SELECT DECODE(v_XMLTextSize,'',0,v_XMLTextSize) into v_XMLTextSize from dual;
IF (v_XMLTextSize = 0) THEN
f_file_id := UTL_FILE.FOPEN(c_DirectoryName, c_FIleName, 'w');
UTL_FILE.PUT(f_file_id, v_XMLextracted);
UTL_FILE.FCLOSE (f_file_id);
ELSE
DBMS_XSLPROCESSOR.CLOB2FILE(v_XMLextracted, c_DirectoryName, c_FIleName);
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('[ERROR] in the fonction CREATEXMLFILE : ');
DBMS_OUTPUT.PUT_LINE('[ERROR] code : '||sqlcode);
DBMS_OUTPUT.PUT_LINE('[ERROR] message : '||sqlerrm);
ROLLBACK;
END CREATEXMLFILE; |
Partager