Oracle數(shù)據(jù)庫中BLOB字段的介紹
我們大家都知道Oracle數(shù)據(jù)庫的Blob是一個較為特殊字段,它比long字段的實際應(yīng)用性能更為好,它的主要功能是用來保存類似圖片之類的相關(guān)二進制的數(shù)據(jù)。以下就是文章的中主要內(nèi)容的介紹。
寫入Blob字段和寫入其它類型字段的方式非常不同,因為Blob自身有一個cursor,你必須使用cursor對blob進行操作,因而你在寫入Blob之前,必須獲得cursor才能進行寫入,那么如何獲得Blob的cursor呢?
這需要你先插入一個empty的blob,這將創(chuàng)建一個blob的cursor,然后你再把這個empty的blob的cursor用select查詢出來,這樣通過兩步操作,你就獲得了blob的cursor,可以真正的寫入blob數(shù)據(jù)了。
舉例如下:
Oracle系列:LOB大對象處理
主要是用來存儲大量數(shù)據(jù)的數(shù)據(jù)庫字段,***可以存儲4G字節(jié)的非結(jié)構(gòu)化數(shù)據(jù)。
主要介紹字符類型和二進制文件類型LOB數(shù)據(jù)的存儲,單獨介紹二進制類型LOB數(shù)據(jù)的存儲。
一,Oracle數(shù)據(jù)庫中的LOB數(shù)據(jù)類型分類
1,按存儲數(shù)據(jù)的類型分:
①字符類型:
CLOB:存儲大量 單字節(jié) 字符數(shù)據(jù)。
NLOB:存儲定寬 多字節(jié) 字符數(shù)據(jù)。
②二進制類型:
BLOB:存儲較大無結(jié)構(gòu)的二進制數(shù)據(jù)。
③二進制文件類型:
BFILE:將二進制文件存儲在數(shù)據(jù)庫外部的操作系統(tǒng)文件中。存放文件路徑。
2,按存儲方式分:
①存儲在內(nèi)部表空間:
CLOB,NLOB和BLOB
②指向外部操作系統(tǒng)文件:
BFILE
二,大對象數(shù)據(jù)的錄入
1,聲明LOB類型列
- /*
- conn scott/tiger;
- Create TableSpace ts5_21
- DataFile 'E:\Oracle\ts5_21.dbf'
- Size 5m;
- */
- Create Table tLob (
- no Number(4),
- name VarChar2(10),
- resume CLob,
- photo BLob,
- record BFile
- )
- Lob (resume,photo)Store As (
Tablespace ts5_21 --指定存儲的表空間
Chunk 6k --指定數(shù)據(jù)塊大小
- Disable Storage In Row
- );
2,插入大對象列
①先插入普通列數(shù)據(jù)
②遇到大對象列時,插入空白構(gòu)造函數(shù)。
字符型:empty_clob(),empty_nclob()
二進制型:empty_blob()
二進制文件類型:BFileName函數(shù)指向外部文件。
BFileName函數(shù):
BFileName(‘邏輯目錄名’,‘文件名’);
邏輯目錄名只能大寫,因為數(shù)據(jù)詞典是以大寫方式存儲。Oracle數(shù)據(jù)庫是區(qū)分大小寫的。
在創(chuàng)建時,無需將BFileName函數(shù)邏輯目錄指向物理路徑,使用時才做檢查二者是否關(guān)聯(lián)。
例子:
- Insert Into tLob Values(1,'Gene',empty_clob()
,empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
③將邏輯目錄和物理目錄關(guān)聯(lián)。(如果是二進制文件類型)
授予 CREATE ANY DIRECTORY 權(quán)限
Grant CREATE ANY DIRECTORY TO 用戶名 WITH ADMIN OPTION;
關(guān)聯(lián)邏輯目錄和物理目錄
本地
Create Directory 邏輯目錄名 As ‘文件的物理目錄’;
網(wǎng)絡(luò):
Create Directory 邏輯目錄名 As ‘\\主機名(IP)\共享目錄’;
例子:
Create Directory MYDIR As 'E:\Oracle';
插入例子:
insert into tlob values(1,'Gene','CLOB大對象列
- ',empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
以上的相關(guān)內(nèi)容就是對Oracle數(shù)據(jù)庫對BLOB類型數(shù)據(jù)的操作與性能問題的介紹,望你能有所收獲。
【編輯推薦】
- Oracle DRCP與PHP實際應(yīng)用的區(qū)別
- 發(fā)揮Oracle數(shù)據(jù)庫數(shù)據(jù)管理功能的3個方案
- Oracle 11g中***有獨特點的5大特點
- Oracle數(shù)據(jù)庫的四種實用性很強的啟動方式
- 九大Oracle性能優(yōu)化基本方法詳解