程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫中BLOB字段的介紹

Oracle數據庫中BLOB字段的介紹

編輯:Oracle數據庫基礎

我們大家都知道Oracle數據庫的Blob是一個較為特殊字段,它比long字段的實際應用性能更為好,它的主要功能是用來保存類似圖片之類的相關二進制的數據。以下就是文章的中主要內容的介紹。

寫入Blob字段和寫入其它類型字段的方式非常不同,因為Blob自身有一個cursor,你必須使用cursor對blob進行操作,因而你在寫入Blob之前,必須獲得cursor才能進行寫入,那麼如何獲得Blob的cursor呢?

這需要你先插入一個empty的blob,這將創建一個blob的cursor,然後你再把這個empty的blob的cursor用select查詢出來,這樣通過兩步操作,你就獲得了blob的cursor,可以真正的寫入blob數據了。

舉例如下:

Oracle系列:LOB大對象處理

主要是用來存儲大量數據的數據庫字段,最大可以存儲4G字節的非結構化數據。

主要介紹字符類型和二進制文件類型LOB數據的存儲,單獨介紹二進制類型LOB數據的存儲。

一,Oracle數據庫中的LOB數據類型分類

1,按存儲數據的類型分:

①字符類型:

CLOB:存儲大量 單字節 字符數據。

NLOB:存儲定寬 多字節 字符數據。

②二進制類型:

BLOB:存儲較大無結構的二進制數據。

③二進制文件類型:

BFILE:將二進制文件存儲在數據庫外部的操作系統文件中。存放文件路徑。

2,按存儲方式分:

①存儲在內部表空間:

CLOB,NLOB和BLOB

②指向外部操作系統文件:

BFILE

二,大對象數據的錄入

1,聲明LOB類型列

  1. /*  
  2. conn scott/tiger;  
  3. Create TableSpace ts5_21  
  4. DataFile 'E:\Oracle\ts5_21.dbf'  
  5. Size 5m;  
  6. */  
  7. Create Table tLob (   
  8. no Number(4),  
  9. name VarChar2(10),  
  10. resume CLob,  
  11. photo BLob,  
  12. record BFile  
  13. )  
  14. Lob (resume,photo)Store As ( 

Tablespace ts5_21 --指定存儲的表空間

Chunk 6k --指定數據塊大小

  1. Disable Storage In Row   
  2. ); 

2,插入大對象列

①先插入普通列數據

②遇到大對象列時,插入空白構造函數。

字符型:empty_clob(),empty_nclob()

二進制型:empty_blob()

二進制文件類型:BFileName函數指向外部文件。

BFileName函數:

BFileName(‘邏輯目錄名’,‘文件名’);

邏輯目錄名只能大寫,因為數據詞典是以大寫方式存儲。Oracle數據庫是區分大小寫的。

在創建時,無需將BFileName函數邏輯目錄指向物理路徑,使用時才做檢查二者是否關聯。

例子:

  1. Insert Into tLob Values(1,'Gene',empty_clob()
    ,empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));  

③將邏輯目錄和物理目錄關聯。(如果是二進制文件類型)

授予 CREATE ANY DIRECTORY 權限

Grant CREATE ANY DIRECTORY TO 用戶名 WITH ADMIN OPTION;

關聯邏輯目錄和物理目錄

本地

Create Directory 邏輯目錄名 As ‘文件的物理目錄’;

網絡:

Create Directory 邏輯目錄名 As ‘\\主機名(IP)\共享目錄’;

例子:

Create Directory MYDIR As 'E:\Oracle';

插入例子:

insert into tlob values(1,'Gene','CLOB大對象列

  1. ',empty_blob(),bfilename('MYDIR','IMG_0210.JPG')); 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved