文件存储到 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.myexception.cn/oracle-develop/177537.html