Oracle数据库中BLOB字段的介绍

以下的文章主要是Oracle数据库对BLOB相关的类型数据的实际操作与相关性能问题的具体描述,以下就
首页 新闻资讯 行业资讯 Oracle数据库中BLOB字段的介绍

我们大家都知道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类型列

 

 

复制

/*  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 (
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

 

Tablespace ts5_21 --指定存储的表空间

 

Chunk 6k --指定数据块大小

 

 

复制

Disable Storage In Row   );
  • 1.

  • 2.

 

 

2,插入大对象列

 

①先插入普通列数据

 

 

②遇到大对象列时,插入空白构造函数。

 

字符型:empty_clob(),empty_nclob()

 

二进制型:empty_blob()

 

二进制文件类型:BFileName函数指向外部文件。

 

BFileName函数:

 

BFileName(‘逻辑目录名’,‘文件名’);

 

逻辑目录名只能大写,因为数据词典是以大写方式存储。Oracle数据库是区分大小写的。

 

在创建时,无需将BFileName函数逻辑目录指向物理路径,使用时才做检查二者是否关联。

 

例子:

 

 

复制

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

  • 2.

 

 

③将逻辑目录和物理目录关联。(如果是二进制文件类型)

 

授予 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大对象列

 

复制

',empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
  • 1.

 以上的相关内容就是对Oracle数据库对BLOB类型数据的操作与性能问题的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle DRCP与PHP实际应用的区别

  2. 发挥Oracle数据库数据管理功能的3个方案

  3. Oracle 11g中***有独特点的5大特点

  4. Oracle数据库的四种实用性很强的启动方式

  5. 九大Oracle性能优化基本方法详解

 

12    2010-04-23 14:32:01    Oracle数据库