作業系統檔案轉儲成BLOB
CREATE OR REPLACE FUNCTION f_load_file(p_directory IN VARCHAR2,
p_filename IN VARCHAR2) RETURN BLOB IS
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
dbms_lob.createtemporary(dst_file, TRUE);
src_file := bfilename(p_directory, p_filename);
dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
-- determine length
lgh_file := dbms_lob.getlength(src_file);
-- read the file
dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
dbms_lob.close(lob_loc => src_file);
RETURN dst_file;
END;
其中p_directory 是目錄物件名稱, p_filename是檔名
呼叫方式:
select f_load_file('IMGUPLOAD_DIR', '養生堂維C咀嚼片批准證書.JPG') from dual
如果遇到錯誤,ora-22290: operation would exceed the maximum number of opened files or lobs
採用如下方式解決: dbms_lob.filecloseall;
除錯的時候,需要通過dbms_lob.createtemporary(dst_file, TRUE)將BLOB物件初始化, 否則會丟擲錯誤:
ora-22275: invalid LOB locator specified
p_filename IN VARCHAR2) RETURN BLOB IS
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
dbms_lob.createtemporary(dst_file, TRUE);
src_file := bfilename(p_directory, p_filename);
dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
-- determine length
lgh_file := dbms_lob.getlength(src_file);
-- read the file
dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
dbms_lob.close(lob_loc => src_file);
RETURN dst_file;
END;
其中p_directory 是目錄物件名稱, p_filename是檔名
呼叫方式:
select f_load_file('IMGUPLOAD_DIR', '養生堂維C咀嚼片批准證書.JPG') from dual
如果遇到錯誤,ora-22290: operation would exceed the maximum number of opened files or lobs
採用如下方式解決: dbms_lob.filecloseall;
除錯的時候,需要通過dbms_lob.createtemporary(dst_file, TRUE)將BLOB物件初始化, 否則會丟擲錯誤:
ora-22275: invalid LOB locator specified
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-1847885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux作業系統檔案系統的桌面應用(轉)Linux作業系統
- Linux作業系統檔案管理器的共享(轉)Linux作業系統
- 作業系統——裝置驅動和檔案系統作業系統
- 作業系統-記憶體、檔案管理作業系統記憶體
- 作業系統——檔案的三種外存形式及檔案儲存空間的管理方法作業系統
- Linux作業系統支援的檔案系統有哪些?Linux作業系統
- 作業系統實驗5 簡易檔案管理系統作業系統
- truncate一個linux作業系統檔案Linux作業系統
- 作業系統列表(轉)作業系統
- Azure Functions(二)整合 Azure Blob Storage 儲存檔案Function
- 作業系統第四章-檔案管理作業系統
- 作業系統(8)儲存器管理作業系統
- Ubuntu麒麟:中國作業系統成“謎”Ubuntu作業系統
- Linux作業系統定時備份檔案方法Linux作業系統
- Mac作業系統命令列顯示/隱藏檔案Mac作業系統命令列
- Windows作業系統下檔案大小限制(不斷更新)Windows作業系統
- 各種作業系統中密碼檔案的位置作業系統密碼
- rootfs -根檔案系統製作
- 檔案管理系統 (轉)
- 作業系統程式、儲存和I/O作業系統
- 作業系統儲存器管理筆記作業系統筆記
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- WindowsXP作業系統十例&#(轉)Windows作業系統
- 深度探索 OpenBSD作業系統(轉)作業系統
- 408 知識點筆記——作業系統(檔案系統、裝置管理)筆記作業系統
- 作業系統中檔案系統的實現和分配方式探析(下)作業系統
- Mac作業系統下怎麼顯示隱藏檔案Mac作業系統
- 作業系統層恢復非關鍵資料檔案作業系統
- 04 磁碟儲存和檔案系統
- 作業系統全接觸之UNIX系統(轉)作業系統
- 作業系統(二):作業系統結構作業系統
- 【作業系統】作業系統綜述(一)作業系統
- QNX 如何製作目標系統,製作系統映象,燒寫系統檔案
- 【作業系統筆記】動態儲存管理作業系統筆記
- 作業系統ENDIAN(位元組儲存次序)作業系統
- 作業系統 作業5作業系統
- 轉-AIX檔案系統滿AI