学习ORACLE插入图片,在网上看到示例如下:

2025-03-07 11:17:55
推荐回答(2个)
回答1:

system下执行

create or replace directory BlobFile as 'C:\TEMP';--路径自己改一下

grant read on directory BlobFile to scott;

 

scott下建立存放的表

Create Table blobTest(

 filename varchar2(200),

 filedesc varchar2(200),

 filebody blob);

 

创建过程

Create Or Replace Procedure Proc_loadBlob(p_filename varchar2,p_filedesc varchar2)

Is

 src_file bfile;

 dst_file BLOB;

 lgh_file binary_integer;

Begin

 src_file := bfilename('BLOBFILE',p_filename);

 insert into blobTest(filename,filedesc,filebody)

  values (p_filename,p_filedesc,EMPTY_BLOB())

   returning filebody into dst_file;

 dbms_lob.fileopen(src_file,dbms_lob.file_readonly);

 lgh_file := dbms_lob.getlength(src_file);

 dbms_lob.loadfromfile(dst_file,src_file,lgh_file);

 update blobTest

 set filebody = dst_file

 where filename = p_filename;

 dbms_lob.fileclose(src_file);

End Proc_loadBlob;

 

执行插入:

exec Proc_loadBlob('101101.jpeg','给图片命名);

 

你要是非弄个id的话,可以自己建立一个序列,到时候自增就好了呀

 

最后给你上图

回答2:

blob与图片之间,无非是用byte[] 转换,通过MemoryStream内存流读取image,得到byte[],再将byte[]写入blob,保存到数据库。