147.Oracle数据库SQL开发之 大对象——理解大对象类型

原创 2015年12月04日 23:09:32

147.Oracle数据库SQL开发之 大对象——理解大对象类型

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50180889

创建3个表

clob_content,包含一个CLOB列

blob_content,包含一个BLOB列

bfile_content,包含了一个BFILE列。

命令如下:

CREATE TABLE clob_content (

  id          INTEGER PRIMARY KEY,

  clob_columnCLOB NOT NULL

);

 

CREATE TABLE blob_content (

  id          INTEGER PRIMARY KEY,

  blob_columnBLOB NOT NULL

);

 

CREATE TABLE bfile_content (

  id           INTEGER PRIMARY KEY,

  bfile_columnBFILE NOT NULL

);

1.  使用大对象

1.1             使用CLOB和BLOC

用数据填充CLOB和BLOB

如下:

INSERT INTO clob_content (

  id,clob_column

) VALUES (

  1,TO_CLOB('Creeps in this petty pace')

);

 

INSERT INTO clob_content (

  id,clob_column

) VALUES (

  2, TO_CLOB('from day to day')

);

向blob_content表添加两行记录

INSERT INTO blob_content (

  id,blob_column

) VALUES (

  1,TO_BLOB('100111010101011111')

);

 

INSERT INTO blob_content (

  id,blob_column

) VALUES (

  2,TO_BLOB('A0FFB71CF90DE')

);

从CLOB中检索数据

lob_user@PDB1> select * from clob_content;

 

         IDCLOB_COLUMN

------------------------------------------------------------------------------------------

          1 Creeps in this petty pace

          2  fromday to day

查询blob_content表中的行,如下:

lob_user@PDB1> select * from blob_content;

 

         ID

----------

BLOB_COLUMN

----------------------------------------------------------------------------------------------------

          1

100111010101011111

 

          2

0A0FFB71CF90DE

1.1.1     修改CLOB和BLOB中的数据

使用UPDATE和INSERT语句。

lob_user@PDB1>update clob_content set clob_column=to_clob('what light through yonder windowbreaks') where id=1;

 

1 row updated.

 

lob_user@PDB1>update blob_content set blob_column=to_blob('1110011010101011111') where id=1;

 

1 row updated.

可以初始化LOB定位器,但实际数据并不存储在LOB中。使用EMPTY_CLOB函数存储一个空的CLOB,使用EMPTY_BLOB函数存储一个空的BLOB:

如下:

lob_user@PDB1> insert intoclob_content(id,clob_column) values ( 3, empty_clob());

 

1 row created.

 

lob_user@PDB1> insert intoblob_content(id,blob_column) values ( 3,empty_blob());

 

1 row created.

要情况LOB数据时,可以在UPDATE语句中使用EMPTY_CLOB和EMPTY_BLOB,如下:

lob_user@PDB1> update clob_content setclob_column= empty_clob() where id=1;

 

1 row updated.

lob_user@PDB1> update blob_content setblob_column= empty_blob() where id=1;

 

1        row updated.

1.2 使用BFILE

BFILE LOB类型可以存储指向文件的指针,可以通过数据库服务器的文件系统访问。这些文件存储在数据库之外,可以指向位于任何媒体上的文件,可以是硬盘,CD,DVD等。

1.2创建目录对象

在BFILE列中存储文件指针之前,必须在数据库中创建一个目录对象,表示文件在文件系统中的存储目录。使用CREATE DIRECTORY语句。

需要有CREATE ANYDIRECTORY数据库权限。

-- create the BFILE directory

collection_user@PDB1> create directorysample_files_dir2 as '/home/oracle/sample_files';

1.3用文件指针填充BFILE列

BFILE只是一个外部文件的指针,所以填充BFILE列时非常简单的。

CREATE TABLE bfile_content (

  id           INTEGER PRIMARY KEY,

  bfile_columnBFILE NOT NULL

);

插入,如下:

INSERT INTO bfile_content (

  id,bfile_column

) VALUES (

  1,BFILENAME('SAMPLE_FILES_DIR', 'textContent.txt')

);

 

INSERT INTO bfile_content (

  id,bfile_column

) VALUES (

  2,BFILENAME('SAMPLE_FILES_DIR', 'binaryContent.doc')

);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle数据库中的大对象

整理自丁俊老师plsql文档: 1、基本介绍 oracle和pl/sql都支持lob(large object)类型,用来存储大数量数据,如图像文件,声音文件等。oracle 10g r1...

Oracle大对象的使用

JAVA完全控制Oracle中BLOB、CLOB说明2007-05-09 13:18JAVA完全控制Oracle中BLOB、CLOB说明网络上很多关于JAVA对Oracle中BLOB、CLOB类型字段...

C++14学习笔记(5)——变量模板

模板是C++实现元编程的重要手段,C++的模板有类模板、函数模板,在C++11中引入了类型别名模板。而在C++14中,引入了一种称为变量模板的新的模板类型。...
  • MgcosA
  • MgcosA
  • 2016年12月05日 11:21
  • 433

C++14尝鲜:别名模板和变量模板

别名模板:带模板参数的类型别名;变量模板:变量的家族
  • zwvista
  • zwvista
  • 2017年01月19日 07:34
  • 596

149.Oracle数据库SQL开发之 大对象——理解LONG和LONG RAW类型

149.Oracle数据库SQL开发之 大对象——理解LONG和LONG RAW类型 欢迎转载,转载请标明出处: LOB现在是大块数据的首选存储类型。 但是可能还会遇到下列类型的数据库: l  LO...
  • notbaron
  • notbaron
  • 2015年12月05日 14:36
  • 31158

148.Oracle数据库SQL开发之 大对象——在PLSQL中使用大对象

148.Oracle数据库SQL开发之 大对象——在PLSQL中使用大对象 欢迎转载,转载请标明出处: 使用ORALCE数据自自带的DBMS_LOB包中的方法来使用LOB。 关于DBMS_LOB中的...
  • notbaron
  • notbaron
  • 2015年12月05日 14:35
  • 30292

128.Oracle数据库SQL开发之 数据库对象——用子类型对象代替超类型对象

128.Oracle数据库SQL开发之 数据库对象——用子类型对象代替超类型对象        欢迎转载,转载请标明出处:   使用子类型对象代替超类型对象,当存储和操纵相关的类型时,用子类型对象代替...
  • notbaron
  • notbaron
  • 2015年11月28日 20:44
  • 30455

126.Oracle数据库SQL开发之 数据库对象——PLSQL中使用对象

126.Oracle数据库SQL开发之 数据库对象——PLSQL中使用对象 欢迎转载,转载请标明出处: PLSQL中可以创建和操作对象。 看一个product_package 的包,如下: CREA...
  • notbaron
  • notbaron
  • 2015年11月28日 20:41
  • 30532

Oracle数据库(Oracle存储结构、Oracle运行机制、日期相关的函数、序列、大对象数据类型、表的修改与约束、事务)

Oracle数据库中存储结构、运行机制、日期相关的函数、序列、表的操作、事务等接单介绍...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:147.Oracle数据库SQL开发之 大对象——理解大对象类型
举报原因:
原因补充:

(最多只允许输入30个字)