2008-09-23 56 views

回答

15

要完全在PL/SQL中完成,文件需要位於服務器上,位於您需要在數據庫中定義的目錄中。創建以下對象:

CREATE OR REPLACE DIRECTORY 
    BLOB_DIR 
    AS 
    '/oracle/base/lobs' 
/



CREATE OR REPLACE PROCEDURE BLOB_LOAD 
AS 

    lBlob BLOB; 
    lFile BFILE := BFILENAME('BLOB_DIR', 'filename'); 

BEGIN 

    INSERT INTO table (id, your_blob) 
     VALUES (xxx, empty_blob()) 
     RETURNING your_blob INTO lBlob; 

    DBMS_LOB.OPEN(lFile, DBMS_LOB.LOB_READONLY); 

    DBMS_LOB.OPEN(lBlob, DBMS_LOB.LOB_READWRITE); 

    DBMS_LOB.LOADFROMFILE(DEST_LOB => lBlob, 
          SRC_LOB => lFile, 
          AMOUNT => DBMS_LOB.GETLENGTH(lFile)); 

    DBMS_LOB.CLOSE(lFile); 
    DBMS_LOB.CLOSE(lBlob); 

    COMMIT; 

END; 
/
+0

您介意如何從報表服務器(超鏈接)讀取文件並將其添加到BLOB對象嗎? http://stackoverflow.com/questions/26881146/how-to-load-a-file-from-a-hyperlink-to-blob – Amir 2014-11-12 10:17:01

0

取決於您的環境。在Java中,你可以這樣做...

​​

但它確實取決於你使用的環境/工具。需要更多信息。

相關問題