Bonjour
j'ai un soucis avec la taille d'une variable de type LONG

Procedure
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
 
PROCEDURE GENERATION_FICHIER_LOG(p_fichier IN OUT LONG) IS  
TYPE TAB_MESSAGE IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER;
  l_tab_message_text    TAB_MESSAGE;
BEGIN
      SELECT MESSAGE
      BULK COLLECT INTO l_tab_message_text
      FROM LOG_PROG
      ORDER BY ORDRE;
 
      IF l_tab_message_text.COUNT>0 THEN
        FOR iCnt IN l_tab_message_text.FIRST..l_tab_message_text.LAST LOOP
          p_fichier:=p_fichier||chr(10)||l_tab_message_text(iCnt);
        END LOOP;
      END IF;
END;
et dans forms j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
DECLARE
	p_long	long;
	p_fichier TEXT_IO.FILE_TYPE;
BEGIN
	GENERATION_FICHIER_LOG(p_long);
	p_fichier:=TEXT_IO.FOPEN('c:\temp\test.txt','W');
  TEXT_IO.PUT_LINE(p_fichier,p_long);
  TEXT_IO.FCLOSE(p_fichier);
  MESSAGE('GENERATION TERMINE');
END;
Et dès que ca depasse ~32800 caractères j'ai l'erreur
-6502;ORA-06502: PL/SQL: numeric or value error
Mon fichier ne fait que 19Ko bien loin des 2Go possible pour le LONG non ??

Merci d'avance