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 中的大对象数据类型blob、clob、nclob的意义以及区别

           这些天一直在试图把一个用Oracle数据库做的项目转换为用msSql2000数据库的,本以为只要把数据库的连接池改改就可以了,没想到事实并没那么简单~ 要改的地方有好多,改了几天...
  • yoyo_yaya
  • yoyo_yaya
  • 2007年01月26日 15:41
  • 22495

oracle数据库中的大对象

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

oracle大对象

在当今网络时代,我们对数据的存储是越来越高,仅仅存储小型文本数据已经远远不够了,现在数据库需要存储图片、视频等等一些多媒体的内容,因此oracle给我们提供了一种大类型数据库对象LOB(Large O...
  • ansha886
  • ansha886
  • 2010年01月31日 09:37
  • 2031

Oracle大对象的使用

JAVA完全控制Oracle中BLOB、CLOB说明2007-05-09 13:18JAVA完全控制Oracle中BLOB、CLOB说明网络上很多关于JAVA对Oracle中BLOB、CLOB类型字段...
  • hawk210000
  • hawk210000
  • 2007年06月04日 16:00
  • 1008

146.Oracle数据库SQL开发之 大对象——大对象简介

146.Oracle数据库SQL开发之 大对象——大对象简介 欢迎转载,转载请标明出处: 数据库越来越需要存储诸如音乐和视频之类的内容。在ORACLE 8之前,字符数据的大数据块必须使用LONG数据...
  • notbaron
  • notbaron
  • 2015年12月04日 23:08
  • 30400

java提高篇(二)-----理解java的三大特性之继承

在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情。在这句话中最引人注...
  • chenssy
  • chenssy
  • 2013年10月16日 19:37
  • 20555

面向对象三大特性以及对类和对象的理解

一: 面向对象三大特性: 1.封装:对外部不可见 封装的实现:java中实现封装性有多种方式,而private只是其中一种比较常用的方式.类中每一个属性都必须封装. private ...
  • u012759397
  • u012759397
  • 2015年08月09日 10:24
  • 1544

sqlserver 大字段存储格式(一)

sqlserver 数据页存储格式
  • u012509728
  • u012509728
  • 2017年03月03日 11:20
  • 719

数据库中大字段类型处理

在数据库中,经常需要用到大字段类型,如oracle中long/blob/clob,sqlserver中text/image,mysql中的text/longtext/clob/blob。   存...
  • zhangjie0407
  • zhangjie0407
  • 2011年12月30日 11:05
  • 404

124.Oracle数据库SQL开发之 数据库对象——查看对象类型

124.Oracle数据库SQL开发之 数据库对象——查看对象类型 欢迎转载,转载请标明出处: 可以使用DESCRIBE命令可以用来获得对象类型的信息。 object_user@PDB1> desc...
  • notbaron
  • notbaron
  • 2015年11月28日 20:39
  • 30318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:147.Oracle数据库SQL开发之 大对象——理解大对象类型
举报原因:
原因补充:

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