Bonjour ,

J'ai crée une procédure qui permet de crée une fichier XML a partir des donnée extraite d'une table .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
j'ai lancé le traitement sur une table qui contient 17457071 Rows

j'ai l'erreur suivant :

[INFO] (SQLrow) : 17457071 Rows
[INFO] XML extraction in progress... :
XML file writing in progress (12744014743 bytes)...
[ERROR] in the fonction CREATEXMLFILE :
[ERROR] code : -1426
[ERROR] message : ORA-01426: numeric overflow
merci pour votre aide .