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