2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > lob移表空间 oracle_移动一个带有lob字段的表到另外一个表空间

lob移表空间 oracle_移动一个带有lob字段的表到另外一个表空间

时间:2020-05-04 05:27:09

相关推荐

lob移表空间 oracle_移动一个带有lob字段的表到另外一个表空间

很多人都知道在建立含有lob字段的表时,Oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中。但是当我们用alter table tb_name move tablespace tbs_name;来对表做空间迁移时只能移动非lob字段以外的数据,而如果需要同时移动lob相关字段的数据,就必需用如下的含有特殊参数据的语句来完成。

alter table tb_name move tablespace tbs_name

lob (col_lob1,col_lob2) store as(tablesapce tbs_name);

下面是一个具体的示例:

Connected to Oracle8i Enterprise Edition Release 8.1.7.0.0

Connected as scott

SQL> desc test_blob;

NameTypeNullable Default Comments

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

FILE_NAME VARCHAR2(25) Y

FILE_BINBLOBY

FILE_BIN2 BLOBY

SQL>

SQL> select t.segment_name, t.segment_type, t.tablespace_name

2from sys.user_segments t

3where t.segment_name like 'SYS_%'

4/

SEGMENT_NAMESEGMENT_TYPETABLESPACE_NAME

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

SYS_IL0000025842C00003$$LOBINDEXSYSTEM

SYS_IL0000025842C00002$$LOBINDEXSYSTEM

SYS_LOB0000025842C00002$$LOBSEGMENTSYSTEM

SYS_LOB0000025842C00003$$LOBSEGMENTSYSTEM

6 rows selected

SQL> alter table test_blob move tablespace tools;

Table altered

SQL>

SQL> select t.segment_name, t.segment_type, t.tablespace_name

2from sys.user_segments t

3where t.segment_name like 'SYS_%'

4/

SEGMENT_NAMESEGMENT_TYPETABLESPACE_NAME

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

SYS_IL0000025842C00003$$LOBINDEXSYSTEM

SYS_IL0000025842C00002$$LOBINDEXSYSTEM

SYS_LOB0000025842C00002$$LOBSEGMENTSYSTEM

SYS_LOB0000025842C00003$$LOBSEGMENTSYSTEM

6 rows selected

SQL> select t.segment_name, t.segment_type, t.tablespace_name

2from sys.user_segments t

3where t.segment_name like 'TEST_BLOB';

SEGMENT_NAMESEGMENT_TYPETABLESPACE_NAME

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

TEST_BLOBTABLETOOLS

SQL> alter table test_blob move tablespace SYSTEM;

Table altered

SQL> ALTER TABLE test_blob MOVE

2TABLESPACE tools

3LOB (FILE_BIN,FILE_BIN2) STORE AS

4(TABLESPACE tools);

Table altered

SQL> select t.segment_name, t.segment_type, t.tablespace_name

2from sys.user_segments t

3where t.segment_name like 'SYS_%';

SEGMENT_NAMESEGMENT_TYPETABLESPACE_NAME

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

SYS_IL0000025842C00003$$LOBINDEXTOOLS

SYS_IL0000025842C00002$$LOBINDEXTOOLS

SYS_LOB0000025842C00002$$LOBSEGMENTTOOLS

SYS_LOB0000025842C00003$$LOBSEGMENTTOOLS

6 rows selected

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。