存储大数据图片

CREATE TABLE SCIMG (SC_TYPE CHAR(1),SC_NO NUMBER(8) ,IMAGE BLOB,IMG_NAME VARCHAR2(50),
constraint pk_scimg primary key(SC_TYPE,SC_NO) ) ;

select * from scimg

create or replace procedure insert_image(img_dir varchar2,sc_type char,sc_no number,img_name varchar2)
is
--建立存储过程用来数据库中插入图像
 img_blob blob;
 img_bfile bfile;
begin
  /*将通过empty_blob()函数将类型为blob的列初始化为空以便以后填充*/
  insert into SCIMG values(sc_type ,sc_no, empty_blob(),img_name)
  returning image into img_blob;
  img_bfile := bfilename(img_dir,img_name); --获得定位器指向的目录和文件
  dbms_output.put_line(dbms_lob.getlength(img_bfile));
  if (dbms_lob.fileexists(img_bfile)!=0) then --如果文件定位器指向的文件存在
    dbms_lob.fileopen(img_bfile,dbms_lob.file_readonly); --打开目标文件
   
    /*将文件字节流数据加载到指定的LOB类型变量中*/
    dbms_lob.loadfromfile(img_blob,img_bfile,dbms_lob.getlength(img_bfile));
   
    dbms_lob.fileclose(img_bfile);--关闭文件
    commit;
    dbms_output.put_line('已经从'||img_dir||'目录中读取了图片'||img_name||'向表中插入');

  else--如果文件定位器指向的文件不存在
    dbms_output.put_line('文件没找到');
  end if;
 
  exception when others then
  dbms_output.put_line(sqlerrm);
end;

select * from scapploc
select * from sccom
select * from scimg
--向表中插入图像
declare
begin
insert_image('IMAGE_PATH','C',100,'patricia.jpg');
commit;
end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值