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 29 30 31 32 33 34 35 36
| DECLARE
CURSOR c IS
SELECT nom, adr1
FROM fclient
WHERE ROWNUM < 10000;
v_clob CLOB;
v_temp VARCHAR2(30000);
i NUMBER :=0;
BEGIN
dbms_output.put_line('DEB1 ' || TO_CHAR(SYSDATE, 'HH24:MI:SS'));
FOR r IN c
LOOP
IF LENGTH(v_temp || r.nom || r.adr1) > 30000
THEN
v_clob := v_clob || v_temp;
v_temp := r.nom || r.adr1;
i := i + 1;
ELSE
v_temp := v_temp || r.nom || r.adr1;
END IF;
END LOOP;
i := i + 1;
v_clob := v_clob || v_temp;
dbms_output.put_line('FIN1 nbMajClob(' || i || ') ' || TO_CHAR(SYSDATE, 'HH24:MI:SS') || ' Taillefinale:' || dbms_lob.getLENGTH(v_clob));
v_clob := '';
i:=0;
dbms_output.put_line('DEB2 ' || TO_CHAR(SYSDATE, 'HH24:MI:SS'));
FOR r IN c
LOOP
i := i + 1;
v_clob := v_clob || r.nom || r.adr1;
END LOOP;
dbms_output.put_line('FIN2 nbMajClob(' || i || ') ' || TO_CHAR(SYSDATE, 'HH24:MI:SS') || ' Taillefinale:' || dbms_lob.getLENGTH(v_clob));
END; |
Partager