Bonjour,

Je cherche a stocker une page HTML (rapport ASH) dans une colonne CLOB pour ensuite l'afficher dans un pop up dans APEX.

Pour ce faire, j'ai cree une table temporaire dans laquelle j'insere le rapport :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE GLOBAL TEMPORARY TABLE gtt_report (OUTPUT VARCHAR2(4000)) ON COMMIT PRESERVE ROWS;
 
INSERT INTO gtt_report
SELECT * FROM TABLE(dbms_workload_repository.ash_report_html(1485633966, 1, SYSDATE-30/1440, SYSDATE-1/1440));
Ensuite, je tente de generer mon CLOB a partir de ma table de varchar2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE TABLE test_clob (c_clob CLOB);
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
28
 
DECLARE
  l_clob CLOB;
 
  CURSOR output IS
     SELECT output FROM gtt_report;
 
BEGIN
 dbms_lob.createtemporary(l_clob, TRUE);
  dbms_lob.open(l_clob, dbms_lob.lob_readwrite);
 
 
     FOR OUTPUT_rec in output
       LOOP
 
         DBMS_LOB.writeappend(l_clob,LENGTH(OUTPUT_rec.OUTPUT),OUTPUT_rec.OUTPUT);
 
       END LOOP;
 
    dbms_lob.close(l_clob);
 
    INSERT INTO test_clob (c_clob) VALUES (l_clob);
 
    COMMIT;
 
    dbms_lob.freetemporary(l_clob);
 
  END;
Cette methode fonctionne si je ne depasse pas le cache de 4000 caracteres. Apres j'obtiens cette erreur :
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.DBMS_LOB", line 1146
ORA-06512: at line 27
Je n'arrive pas bypasser cette limitation. Sauriez vous comment faire ?

(Si vous avez une methode plus simple pour stocker mon rapport ASH dans une table, je suis egallement preneur)