Oracle数据库中BLOB字段的介绍

数据库 Oracle
以下的文章主要是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类型列

 

 

  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')); 

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

【编辑推荐】

  1. Oracle DRCP与PHP实际应用的区别
  2. 发挥Oracle数据库数据管理功能的3个方案
  3. Oracle 11g中***有独特点的5大特点
  4. Oracle数据库的四种实用性很强的启动方式
  5. 九大Oracle性能优化基本方法详解

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-04-29 10:56:46

Oracle数据库

2010-04-20 10:12:42

OraclePL

2011-03-22 14:49:35

Oracle数据库重定义表

2011-07-19 14:48:36

处理blob字段

2010-04-15 13:01:25

Oracel数据库

2011-05-26 14:18:49

Oracle数据库字段属性

2010-04-21 14:45:39

Oracle数据库

2015-10-28 14:45:35

ORACLE AIO异步IO

2015-10-28 17:39:04

ORACLE AIO异步IO

2011-08-18 18:34:00

Oracle数据库创建自增字段

2010-04-14 15:58:17

Oracle程序开发

2011-08-12 12:59:33

Oracle数据库同义词

2010-05-07 17:39:02

Oracle数据库性能

2010-04-02 12:23:30

Oracle数据库

2010-04-20 11:41:55

Oracle数据库

2010-04-23 16:05:50

Oracle数据库

2010-04-07 09:31:02

Oracle数据库

2011-05-17 13:43:23

Oracle数据库

2009-08-24 18:09:13

C#调用Oracle数

2010-03-18 09:28:14

Oracle数据库迁移
点赞
收藏

51CTO技术栈公众号