--LOB浅析(CLOB/BCLOB/NCLOB)
--Oracle中支持4种类型的LOB
/*
CLOB:字符LOB,用于存储大量的文本信息。
NCLOB:另一种类型的字符LOB。
BCLOB:二进制LOB,用于存储大量的二进制信息。
BFILE:二进制文件LOB,一个指针。
*/
--Oracle 11g中引入了一种称为SecureFile的新LOB架构,在此之前的称为BasicFile。
--创建SecureFile
EODA@PROD1> set echo on
EODA@PROD1>
EODA@PROD1> create table t
2 ( id int primary key,
3 txt clob
4 )
5 segment creation immediate
6 /
Table created.
EODA@PROD1>
EODA@PROD1> column column_name form a12
EODA@PROD1> column securefile form a12
EODA@PROD1>
EODA@PROD1> select column_name, securefile from user_lobs where table_name='T'; --这个SQL验证创建的LOB是否是SecureFile
COLUMN_NAME SECUREFILE
------------ ------------
TXT NO
EODA@PROD1> show parameter securefile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_securefile string PERMITTED
/*
DB_SECUREFILE specifies whether or not to treat LOB files as SecureFiles.
PERMITTED LOBs are allowed to be created as SecureFiles.
并没有找到原因所以设置成FORCE,11g可能默认设置为BasicFile
*/
EODA@PROD1> alter session set db_securefile=FORCE;
Session altered.
EODA@PROD1> drop table t purge;
Table dropped.
EODA@PROD1> create table t
2 ( id int primary key,
3 txt clob
4 )
5 segment creation immediate
6 /
Table created.
EODA@PROD1>
EODA@PROD1> column column_name form a12
EODA@PROD1> column securefile form a12
EODA@PROD1>
EODA@PROD1> select column_name, securefile from user_lobs where table_name='T';
COLUMN_NAME SECUREFILE
------------ ------------
TXT YES --此处创建成功
EODA@PROD1>
EODA@PROD1> set long 10000
EODA@PROD1> select dbms_metadata.get_ddl( 'TABLE', 'T' ) from dual; --查看LOB设置的选项
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
CREATE TABLE "EO
LOB浅析(CLOB/BCLOB/NCLOB)
最新推荐文章于 2024-08-17 22:18:19 发布
本文深入探讨了Oracle数据库中的LOB类型,包括CLOB、BCLOB和NCLOB,重点解析了SecureFile和BasicFile两种LOB架构。通过示例展示了如何创建SecureFile LOB,并分析了SecureFile与BasicFile在存储、性能和特性上的差异,如RETENTION和CACHE子句的影响。
摘要由CSDN通过智能技术生成