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

oracle 存储 图片
--一个完整的存储图片的例子,楼主参考下,可费劲找了,嘎嘎~
SQL> CREATE TABLE IMAGE_LOB (
  2  T_ID VARCHAR2 (5) NOT NULL,
  3  T_IMAGE BLOB NOT NULL
  4  );

表已创建。

SQL> CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\Inetpub\wwwroot';

目录已创建。

SQL> CREATE OR REPLACE PROCEDURE IMG_INSERT (
  2  TID           VARCHAR2,
  3  FILENAME      VARCHAR2) AS
  4     F_LOB   BFILE;
  5     B_LOB   BLOB;
  6   BEGIN
  7       INSERT INTO IMAGE_LOB (T_ID, T_IMAGE) VALUES (TID,
  8  EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;
  9       F_LOB:= BFILENAME ('IMAGES', FILENAME);
10       DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY);
11       DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,
12  DBMS_LOB.GETLENGTH (F_LOB));
13       DBMS_LOB.FILECLOSE (F_LOB);
14       COMMIT;
15   END;
16  /

过程已创建。

SQL> BEGIN
  2      IMG_INSERT('1','win2000.gif');
  3   END;
  4  /

PL/SQL 过程已成功完成。

SQL> select length(t_image) from image_lob where t_id='1';

LENGTH(T_IMAGE)
---------------
           4670

SQL>