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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as mni
SQL>
SQL> create table tab1 (
2 col1 clob
3 )
4 /
Table created
SQL> Declare
2 lob_loc Clob;
3 Begin
4 insert into tab1(col1)
5 values (empty_clob)
6 returning col1 into lob_loc;
7 --
8 dbms_lob.write(lob_loc, 32767, 1, lpad('x',32767,'x'));
9 dbms_lob.writeappend(lob_loc, 32767, lpad('y',32767,'y')) ;
10 --
11 commit;
12 end;
13 /
PL/SQL procedure successfully completed
SQL> Declare
2 l_file UTL_FILE.FILE_TYPE;
3 l_clob CLOB;
4 l_buffer Varchar2(32767);
5 l_amount BINARY_INTEGER := 32767;
6 l_pos INTEGER := 1;
7 BEGIN
8 SELECT col1
9 INTO l_clob
10 FROM tab1
11 WHERE rownum = 1;
12
13 l_file := UTL_FILE.fopen('MRS_DOC', 'Sample2.txt', 'wb', 32767);
14 LOOP
15 DBMS_LOB.read( l_clob, l_amount, l_pos, l_buffer);
16 UTL_FILE.put_raw(l_file, utl_raw.cast_to_raw(l_buffer));
17 l_pos := l_pos + l_amount;
18 END LOOP;
19 EXCEPTION
20 WHEN NO_DATA_FOUND THEN
21 -- Expected end.
22 UTL_FILE.fclose(l_file);
23 WHEN OTHERS THEN
24 UTL_FILE.fclose(l_file);
25 RAISE;
26 END;
27 /
PL/SQL procedure successfully completed
SQL> |
Partager