日期:2014-05-16  浏览次数:20467 次

文件存储到 Oracle 的存储过程用的外部BLOB的方式
一个存储图片文件的过程,任何开发工具都可以通过调用过程把图片文存储到数据库中。
详细步骤:
SQL> connect chanet/chanet@oradb;
已连接。

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> EXEC IMG_INSERT('1','f_TEST.jpg');
PL/SQL 过程已成功完成。
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html