关闭

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

30508人阅读 评论(0) 收藏 举报

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25207465次
    • 积分:91350
    • 等级:
    • 排名:第13名
    • 原创:781篇
    • 转载:137篇
    • 译文:14篇
    • 评论:23条
    最新评论