溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數(shù)據(jù)庫中如何插入修改圖片BLOB字段

發(fā)布時間:2020-08-11 05:48:17 來源:ITPUB博客 閱讀:228 作者:yanhengdoudou 欄目:數(shù)據(jù)庫

插入示例

1.     利用存儲過程進行插入數(shù)據(jù)

-- 創(chuàng)建存儲圖片的表

CREATE TABLE IMAGE_LOB ( T_ID VARCHAR2 ( 5 ) NOT NULL , T_IMAGE BLOB NOT NULL );

-- 創(chuàng)建存儲圖片的目錄,我這里在本地 C

CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\' ;

-- 通過存儲過程來實現(xiàn)插入

CREATE OR REPLACE PROCEDURE IMG_INSERT ( TID VARCHAR2 , FILENAME VARCHAR2 ) AS

F_LOB BFILE ; -- 文件類型

B_LOB BLOB ;

BEGIN

-- 插入空的 blob EMPTY_BLOB ()

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 ;

/

2.     調(diào)用存儲過程插入圖片

call IMG_INSERT ( '1' , '1.jpg' );

數(shù)據(jù)庫中如何插入修改圖片BLOB字段

3.     驗證結果

select * from IMAGE_LOB ;

  數(shù)據(jù)庫中如何插入修改圖片BLOB字段

數(shù)據(jù)庫中如何插入修改圖片BLOB字段

修改示例

1. 通過過程進行修改

declare

l_bfile bfile ;

l_blob blob ;

begin

update IMAGE_LOB set T_IMAGE=empty_blob () where T_ID=1 return T_IMAGE into l_blob ;

-- 圖片路徑還在 C 盤,通過系統(tǒng)表 SELECT * FROM dba_directories; 查詢

l_bfile:=bfilename ( 'IMAGES' , '2.jpg' );

-- 以只讀的方式打開文件

dbms_lob . open ( l_bfile , dbms_lob . file_readonly );

-- 傳遞對象

dbms_lob . loadfromfile ( l_blob , l_bfile , dbms_lob . getlength ( l_bfile ));

-- 關閉原始文件

dbms_lob . close ( l_bfile );

commit ;

end ;

/

2. 驗證結果

select * from IMAGE_LOB ;

數(shù)據(jù)庫中如何插入修改圖片BLOB字段

數(shù)據(jù)庫中如何插入修改圖片BLOB字段

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI