ORACLE中的LOB大对象处理

LOB大对象处理: 主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。 主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储。

一、Oracle中的LOB数据类型分类

1、按存储数据的类型分:

①字符类型:

CLOB:存储大量 单字节 字符数据。

NLOB:存储定宽 多字节 字符数据。

②二进制类型:

BLOB:存储较大无结构的二进制数据。

③二进制文件类型:

BFILE:将二进制文件存储在数据库外部的操作系统文件中。存放文件路径。

2、按存储方式分:

①存储在内部表空间:

CLOB,NLOB和BLOB

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

BFILE

二、大对象数据的录入

1、声明LOB类型列

Create TableSpace Dave  DataFile 'D:/Dave/dave.dbf' Size 20m;

Create Table tLob (

no Number(4),

name VarChar2(10),

resume CLob,

photo BLob,

record BFile

Lob (resume,photo)Store As (

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

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

Disable Storage In Row

);

2、插入大对象列

①先插入普通列数据

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

字符型:empty_clob(),empty_nclob()

二进制型:empty_blob()

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

BFileName函数:

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

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

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

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

授予 CREATE ANY DIRECTORY 权限

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

关联逻辑目录和物理目录

本地

Create Directory  逻辑目录名  As  ‘文件的物理目录’;

网络:

Create Directory  逻辑目录名  As  ‘//主机名(IP)/共享目录’;

例子:

Create Directory  MYDIR As ' D:/Dave';

插入例子:

/* Formatted on 2009-12-24 17:27:00 (QP5 v5.115.810.9015) */

INSERT INTO tlob

VALUES   (1,

'Dave',

'CLOB大对象列',

EMPTY_BLOB (),

BFILENAME ('MYDIR', 'Dave.jpg'));

INSERT INTO tlob

VALUES   (2,

'Dave',

'CLOB大对象列',

EMPTY_BLOB (),

BFILENAME ('MYDIR', 'Dave.jpg'));

INSERT INTO tlob

VALUES   (3,

'Dave',

'CLOB大对象列',

EMPTY_BLOB (),

BFILENAME ('MYDIR', 'Dave.jpg'));

三、大对象数据的读取和操作:DBMS_LOB包

DBMS_LOB包:包含处理大对象的过程和函数

1、读取大对象数据的过程和函数

①:DBMS_LOB.Read():从LOB数据中读取指定长度数据到缓冲区的过程。

DBMS_LOB.Read(LOB数据,指定长度,起始位置,

存储返回LOB类型值变量);

例子:

/* Formatted on 2009-12-24 17:25:01 (QP5 v5.115.810.9015) */

DECLARE

varC    CLOB;

时间: 2024-09-14 10:03:19

ORACLE中的LOB大对象处理的相关文章

Oracle中的LOB数据类型以及ibatis中处理该类型的typeHandler

一 oracle中的LOB类型   LOB数据类型提供了BOLB.COLB.BFILE等具体数据类型,用来存储无结构大数据块,如文本.图片.图像.声音.视频等,存 储最大尺寸为4G,并且可以用高效.任意.随机分段的方式来存取数据.   BOLB:常用于保存包含图片.图像的大文件.资料 COLB:常用于保存只有文本的大文件.资料 BFILE:常用于需要用操作系统文件来进行业务工作的场合,如声音.视频       二 batis配置文件的类型控制器   无论是iBatis在预处理语句中设置一个参数,

Oracle中存储过程执行大的Sql语句时如何查看sql是否正确

  在Oracle中编写一个存储过程中,有时会用到较大的sql语句,但是通过PL/sql工具Test查看时又不能看到sql的样子,通过查看发现可以通过Oracle的物理临时表来处理, 在存储过程中添加DBMS_OUTPUT.put_line('要输出的Sql语句'); 然后在PL/sql工具中选中存储过程,右键选择Test执行,执行完成后可以通过DBMS_OUTPUT窗口查看sql结果了,很实用的

Oracle中处理LOB字段的常用字符函数

以前处理LOB字段都是使用DBMS_LOB包,最近看了文档才发现,原来很多常用的字符函数都是支持LOB字段的. 建立一个测试表: SQL> CREATE TABLE T_LOB (ID NUMBER, CONTENTS CLOB); Table created. SQL> DECLARE 2     V_LOB CLOB; 3  BEGIN 4        INSERT INTO T_LOB 5     VALUES (1, EMPTY_CLOB()) 6     RETURN  CONTE

在java中正确使用PostgreSQL大对象和字节流类型的姿势

有人在java中使用getBlob获取所谓的"大对象"失败,问题是用法不对. groovy:000> rs.getBlob("image") ERROR org.postgresql.util.PSQLException: Bad value for type long : \336\255\276\357\336\255\276\357 at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong (Abstra

oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法

问题描述 oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法 大神们,随便给几个例子参照一下啊,oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法 解决方案 差不多这个意思,http://zhidao.baidu.com/link?url=lYFB7BBbSoybi5mTurmVbI88Q5R78nnhHyQUiMAhF3B4iyA1OiPCxY4xsRS7v_v0kBdbtCVvVlPHhfY9Rerx7K 解决方案二: create or repl

oracle数据库中的大对象1——永久性的

整理自丁俊老师plsql文档: 1.基本介绍 oracle和pl/sql都支持lob(large object)类型,用来存储大数量数据,如图像文件,声音文件等.oracle 10g r1 支持最大8 到128万一字节的数据存储,依赖于你的数据库的 block size. 在pl/sql中,可以声明的lob的类型变量如下: BFILE :二进制文件,存储在数据库外的操作系统文件,只读的.把此文件当二进制处理. BLOB:二进制大对象,存储在数据库里的大对象,一般是图像声音等文件. CLOB: 字

ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段.下面演示一下: CREATE TABLE TEST (        "ID"   NUMBER,     "NAME" NVARCHAR2(10),     "TEST" CLOB )   INSERT INTO TEST SELECT 1000, '

oracle数据库中的大对象2—— temporary lobs

              到目前为止,我们讨论的都是持久化到数据库中的lob数据,但是实际应用中,我们有时候并不需要将数据持久化到数据库中,那么就需要用到Temporary lob(临时lob),它就像局部变量一样,并不持久化到数据库中.我们将讨论temporary lob和用dbms_lob包来操作它们. Oracle 8i之后支持创建,解除,访问,更新Temporary lob通过oci(oracle call interface)和dbms_lob包.临时lob的生命周期是在创建它的se

ORACLE中LOB字段的使用和维护

oracle 摘要:本文通过实例介绍了在ORACLE数据库中通过DBMS_LOB包使用和维护LOB数据类型的基本方法. 关键词:ORACLE DBMS_LOB LOB 维护 中图分类号:TP31 1.引言 随着社会的发展,在现代信息系统的开发中,需要存储的已不仅仅是简单的文字信息,同时还包括一些图片和音像资料或者是超长的文本.比如开发一套旅游信息系统,每一个景点都有丰富的图片.音像资料和大量的文字介绍.这就要求后台数据库要有存储这些数据的能力.ORACLE公司在其Oracle8i中通过提供LOB