写clob出现字符串缓冲区太小
SQL> declare
2 clob_size pls_integer;
3 the_clob clob;
4 max_size pls_integer:=400;
5 amount_to_read pls_integer;
6 offset pls_integer:=1;
7 vbuf varchar2(400):=null;
8 begin
9 select document into the_clob from doc
10 where doc_id=1;
11 dbms_lob.open(the_clob,dbms_lob.lob_readonly);
12 clob_size:=dbms_lob.getlength(the_clob);
13 amount_to_read:=least(max_size,clob_size);
14 dbms_lob.read(the_clob,amount_to_read,offset,vbuf);
15 dbms_lob.close(the_clob);
16 dbms_output.put_line(replace(vbuf,chr(10),'-'));
17 end;
18 /
declare
*
第 1 行出现错误:
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
ORA-06512: 在 "SYS.DBMS_LOB", line 759
ORA-06512: 在 line 14
若再次运行,还会出现以下错误请高手指教,该怎么改?
SQL> /
declare
*
第 1 行出现错误:
ORA-22293: LOB 已在同一个事务处理中打开
ORA-06512: 在 "SYS.DBMS_LOB", line 710
ORA-06512: 在 line 11
请高手指教,该怎么改?