将图片文件存储到Oracle的存储过程

作者:网络 来源:佚名 更新时间:2008-11-17 15:07:45 点击:

  一个存储图片文件的过程,任何开发工具都可以通过调用过程把图片文存储到数据库中。

  详细步骤:

  microsoft windows 2000 [version 5.00.2195]

  (c) 版权所有 1985-2000 microsoft corp.

  c:documents and settingschanet>cd

  c:>sqlplus /nolog

  sql*plus: release 9.2.0.1.0 - production on 星期三 1月 19 14:46:21 2005

  copyright (c) 1982, 2002, oracle corporation. all rights reserved.

  sql> connect chanet/[email protected];

  已连接。

  sql> create table image_lob (t_id varchar2 (5) not null,t_image blob not null);

  表已创建。

  sql> create or replace directory images as 'c:oracle'; --图片目录

  目录已创建。

  sql> create or replace procedure img_insert (tid varchar2,filename varchar2) as

  2 f_lob bfile;

  3 b_lob blob;

  4 begin

  5 insert into image_lob (t_id, t_image)

  6 values (tid,empty_blob ()) return t_image into b_lob;

  7 f_lob:= bfilename ('images', filename);

  8 dbms_lob.fileopen (f_lob, dbms_lob.file_readonly);

  9 dbms_lob.loadfromfile (b_lob, f_lob,

  10 dbms_lob.getlength (f_lob));

  11 dbms_lob.fileclose (f_lob);

  12 commit;

  13 end;

  14 /

  过程已创建。

  sql>-- 示例

  sql> exec img_insert('1','f_test.jpg');

  pl/sql 过程已成功完成。