blessed24 发表于 2013-1-14 08:52:10

文件存储到 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;
4BEGIN
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;
13END;
14/
过程已创建。
SQL> EXEC IMG_INSERT('1','f_TEST.jpg');
PL/SQL 过程已成功完成。
页: [1]
查看完整版本: 文件存储到 Oracle 的存储过程用的外部BLOB的方式