首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

將圖片檔案儲存至 Oracle 的預存程序

     編輯:Oracle 資料庫基礎

建立資料表與目錄

CREATE TABLE IMAGE_LOB (T_ID VARCHAR2(5) NOT NULL, T_IMAGE BLOB NOT NULL);
CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\ORACLE';  -- 圖片目錄

建立預存程序 IMG_INSERT

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;
  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;
/

執行範例

EXEC IMG_INSERT('1', 'F_TEST.JPG');
-- PL/SQL 程序成功完成

關鍵點

  • 使用 BFILENAME 指向外部檔案(需 CREATE DIRECTORY 權限)。
  • EMPTY_BLOB() 初始化 BLOB 並透過 RETURNING 取得 LOB 定位器。
  • DBMS_LOB.LOADFROMFILE 將 BFILE 內容載入 BLOB。
  • 任何開發工具皆可呼叫此程序儲存圖片。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved