如何往Oracle数据库中插入一个已有的图片(数据库中为BLOB类型)?

解决方案 »

  1.   


    --转帖
    --连接到管理员 
    conn sys/tbsoft as sysdba; --为scott用户授权 grant create any directory to scott; --回到scott用户 conn scott/tiger; 
    --创建存储图片的表 
    CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL); --创建存储图片的目录 
    CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\picture'; --在c:下自己建一个叫picture的文件夹 CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS 
    F_LOB BFILE;--文件类型 
    B_LOB BLOB; 
    BEGIN 
    iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE) 
    VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; 
    --插入空的blob 
    F_LOB:= BFILENAME ('IMAGES', FILENAME); 
    --获取指定目录下的文件 
    DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONLY); 
    --以只读的方式打开文件 
    DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB)); 
    --传递对象 
    DBMS_LOB.FILECLOSE (F_LOB); 
    --关闭原始文件 
    COMMIT; 
    END; 

    --在C:\picture下放一张图片1.gif --将该图片存入表 
    call IMG_INSERT('1','1.gif'); 
      

  2.   

    参考
    http://topic.csdn.net/u/20080320/21/18678CFB-2E5C-4B17-B67E-0BFBB7DF4BD0.html