oracle 存储过程返回clob类型问题.
表中有一列字符类型 C,数据量很大,现有应用系统需要将获取的记录中 列C 用逗号分隔,组成CLOB类型返回
........--测试代码
procedure GetMonitorStyle(out_data out clob) as
cursor curdata is select msd_data from monitorstyledata where msd_msiid =40; --数据游标
l_dbvalue varchar2(100):=''; --值
l_clob clob ; --大字段
t_amount number;
t_offset number;
begin
-- 写入
open curdata;
SELECT document INTO l_clob FROM info where rownum=1 FOR UPDATE ;
loop
fetch curdata into l_dbvalue;
exit when curdata%notfound;
l_dbvalue:=concat(l_dbvalue,',');
t_amount :=length(l_dbvalue); --获取追加文本的长度
dbms_lob.WRITEAPPEND(l_clob,t_amount,l_dbvalue);
end loop;
close curdata;
commit;
--out_data := l_clob; --ora-03127 在活动操作结束前.....
end;
----------------------------------------------------------------
现在我是通过获取后一个中间表 info(只有一列,clob,一行数据) 将数据用逗号分隔后保存到这个表里,
应用系统再去这张表里,去获取这个CLOB数据;
直接将这个CLOB返回,发现数据不会,并且错报错. ora-03127 在活动操作结束前.....
有没有办法直接在存储过程里,就返回这个CLOB数据?
谢谢各位.