今天处理clob字段,学习到很多知识,现在总结一下:
今天同事要求把一个clob字段的数据,做成一个text脚本。虽然需求很奇怪,但是尽量满足要求。
本以为可以用varchar2做一个中转站,完成任务。但是clob字段中的字符超出4000,没有简单的完成任务。
只能通过流的方法插入了,在oracle开发环境中我们可以用dbms_lob包来处理.
读数据方法:
dbms_lob.write(参数1,参数2,参数3,参数4)
参数1:具体要插入的数据
参数2:每次读一定量的字符,放入到缓冲区
参数3:开始读取字符的位置
参数4:结束读取字符的位置
实例:
DECLARE
v_clob CLOB;
buffer VARCHAR2(2000);
amount NUMBER := 20;
offset NUMBER := 1;
BEGIN
--初始化要写入的数据
buffer := 'This is a writing example';
amount := length(buffer);
SELECT document INTO lobloc-- 获取定位器并锁定行
FROMview_sites_info
WHERE site_id = 100 FOR UPDATE;
dbms_lob.write(lobloc,amount,1,buffer);
COMMIT;
END;
/
v_clob CLOB;
buffer VARCHAR2(2000);
amount NUMBER := 20;
offset NUMBER := 1;
BEGIN
--初始化要写入的数据
buffer := 'This is a writing example';
amount := length(buffer);
SELECT document INTO lobloc-- 获取定位器并锁定行
FROMview_sites_info
WHERE site_id = 100 FOR UPDATE;
dbms_lob.write(lobloc,amount,1,buffer);
COMMIT;
END;
/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12272958/viewspace-680547/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12272958/viewspace-680547/