blob是oracle中用来存储大数据的好东东(图片,文本,文件等)。
下面说说:写blob数据;读blob数据;复制blob数据
创建一个表test,字段id(varchar2(10)), contents(blob), com(varchar2(30);
创建一个表test_b,字段id(varchar2(10)), contents(blob), com(varchar2(30);
1.写一个存储过程写blob数据:
create or replace procedure sp_write_test_blob(test_id in varchar2, blob_data in raw) is
lob_loc blob;
begin
insert into test(id, contents) values(test_id, empty_blob());
commit;
select contents into lob_loc from test where test_id = id for update; --lob_loc指向contents字段
dbms_lob.write(lob_loc, utl_raw.length(blob_data), 1 , blob_data); --向contents字段写入数据
end sp_write_test_blob;
调用过程:call sp_write_test_blob('1', utl_raw.cast_to_raw('hello'));
2.写一个函数读blob数据:
create or replace function fun_read_test_blob(test_id in varchar2) return raw is
Result RAW(32767);
amt binary_integer := 32767;
src_lob blob;
begin
select contents into src_lob from test where test_id = id; --src_lob指向contents字段
dbms_lob.read(src_lob, amt, 1, Result); --读取contents字段
return(Result);
end fun_read_test_blob;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载