使用PL/SQL如何将文件内容加入blob?


4

我有一个文件。我想将它的内容放到我的oracle数据库的blob列中,或者放到我的PL/SQL程序中的blob变量中。什么是最好的方式来做到这一点?

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 12 11月. 142014-11-12 10:17:01

  0

嗨,可以做到这一点,而无需将文件添加到表? 14 7月. 162016-07-14 13:44:01


0

取决于您的环境。在Java中,你可以这样做...

​​

但它确实取决于你使用的环境/工具。需要更多信息。