700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > oracle修改clob值 oracle 修改 clob字段 查询clob字段

oracle修改clob值 oracle 修改 clob字段 查询clob字段

时间:2020-11-23 10:00:57

相关推荐

oracle修改clob值 oracle 修改 clob字段 查询clob字段

给你处理clob的方法 处理CLOB字段的动态PL/SQL 2001-03 动态PL/SQL,对CLOB字段操作可传递表名table_name,表的唯一标志字段名field_id,clob字段名field_name,记录号v_id,开始处理字符的位置v_pos,传入的字符串变量v_clob 修改CLOB的PL/SQL过程:updateclob create or replace procedure updateclob(table_name in varchar2,field_idin varchar2, field_name in varchar2,v_id in number,v_pos in number,v_clobin varchar2) islobloc clob;c_clob varchar2(32767);amt binary_integer;pos binary_integer;query_str varchar2(1000); begin pos:=v_pos*32766+1; amt := length(v_clob); c_clob:=v_clob; query_str := 'select '||field_name|| ' from '||table_name|| ' where '||field_id|| '= :id for update '; --initialize buffer with data to be inserted or updated EXECUTE IMMEDIATE query_str INTO lobloc USING v_id; --from pos position, write 32766 varchar2 into lobloc dbms_lob.write(lobloc, amt, pos, c_clob); commit; exception when others then rollback; end; / 用法说明: 在插入或修改以前,先把其它字段插入或修改,CLOB字段设置为空empty_clob(), 然后调用以上的过程插入大于2048到32766个字符。 如果需要插入大于32767个字符,编一个循环即可解决问题。 查询CLOB的PL/SQL函数:getclob create or replace function getclob(table_name in varchar2,field_idin varchar2, field_name in varchar2,v_id in number,v_pos in number) return varchar2 islobloc clob;buffer varchar2(32767);amount number := 2000;offset number := 1;query_str varchar2(1000); begin query_str := 'select '||field_name|| ' from '||table_name|| ' where '||field_id|| '= :id '; --initialize buffer with data to be found EXECUTE IMMEDIATE query_str INTO lobloc USING v_id; offset:=offset+(v_pos-1)*2000; --read 2000 varchar2 from the buffer dbms_lob.read(lobloc,amount,offset,buffer); return buffer; exceptionwhen no_data_found then return buffer; end; / 用法说明: 用select getclob(table_name,field_id,field_name,v_id,v_pos) as partstr from dual; 可以从CLOB字段中取2000个字符到partstr中, 编一个循环可以把partstr组合成dbms_lob.getlength(field_name)长度的目标字符串。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。