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

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

);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值