如何在存储过程中读取BLOB字段的内容。

如何在存储过程中读取BLOB字段的内容;
或如何通过vb读取BLOB字段的内容?
---------------------------------------------------------------

使用dbms_blob参考其资料。
需要先得到它的定位器,然后再操作,faq里面有讨论的
---------------------------------------------------------------

http://expert.csdn.net/Expert/topic/1238/1238688.xml?temp=.2815515

对你有帮助
---------------------------------------------------------------

用dbms_blob包
---------------------------------------------------------------

这是读取clob的函数,你可以做相应的修改
查询CLOB的PL/SQL函数:getclob

create or replace function getclob(
table_name in varchar2,
field_id in varchar2,
field_name in varchar2,
v_id in number,
v_pos in number) return varchar2
is
lobloc clob;
buffer varchar2(32767);
amount number := 2000;
offset number := 1;
query_str varchar2(1000);
begin
query_str :='select ' ¦ &brvbarfield_name ¦ ¦' from ' ¦ &brvbartable_name ¦ ¦' where ' ¦ &brvbarfield_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;
exception
when 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)长度的目标字符串。

---------------------------------------------------------------

http://www.itpub.net/showthread.php?s=74f01fead067788f43b0a1b707943be1&threadid=7723

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus