oracle图片及文件插入

oracle图片及文件的插入需用到数据类型bfile、blob及dbms_lob包处理文件,大致逻辑是先将空值插入到表中blob类型,然后对其更新即可。

代码如下:

1.首先在sqlplus下建目录(图片及文件的磁盘物理路径)

SQL> create or replace directory IMAGES as 'd:\';

d:\是我的磁盘下面的文件路径。创建的目录可在oracle字典表all_directories下查看:

 

SQL> select * from all_directories;
 
OWNER           DIRECTORY_NAME           DIRECTORY_PATH
----------------- ------------------------------ ------------------------------------

SYS                         IMAGES                                    d:\

 

2.创建表

-- Create table
create table IMAGES
(
  IID   VARCHAR2(10),
  IMAGE BLOB
)

 

3.创建produre

create or replace procedure p_image(i_id varchar2,i_filename varchar2)
is
  v_flob bfile;
  v_blob blob;
begin
  --将空值插入到表中blob字段
  insert into images values (i_id,empty_blob()) return image into v_blob;


  --将目录下的文件更新到表中blob字段

  --这里IMAGE目录会自动到字典表all_directories查找其关联的磁盘物理路径
  v_flob:=bfilename('IMAGE',i_filename);
  dbms_lob.fileopen(v_flob,dbms_lob.file_readonly);
  dbms_lob.loadfromfile(v_blob,v_flob,dbms_lob.getlength(v_flob));
  dbms_lob.close(v_flob);
end;

4.运行过程

SQL> exec p_image('1','aa.bmp');--1为id,aa.bmp为我的d盘下的图片文件
 
PL/SQL procedure successfully completed

5.查询表

SQL> select * from images;
 
IID        IMAGE
---------- --------
1          <BLOB>

这里的blob即为插入的图片aa.bmp,在编辑窗口可查看其详细信息。

图片如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值