从上面的实验中,我们可以看出:当我们对lob进行move的时候,如果使用数据列(xmltype),数据操作是不支持的。换而使用对隐含列的操作时,可实现对一个已经创建数据表的Lob段进行移动。
注意:当我们使用到Oracle 11g的时候,事情有所差异。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
我们在11g上进行试验。
SQL> create table t (id number, cl xmltype) tablespace system;
Table created
SQL> select segment_name, segment_type, tablespace_name from user_segments;
SEGMENT_NAME SEGMENT_TYPE TABLESPACE
------------------------------ ------------------ ----------
T TABLE SYSTEM
SYS_IL0000075364C00003$$ LOBINDEX SYSTEM
SYS_LOB0000075364C00003$$ LOBSEGMENT SYSTEM
9 rows selected
此时,我们进行move操作。
SQL> alter table t move tablespace users;
Table altered
SQL> select segment_name, segment_type, tablespace_name from user_segments;
SEGMENT_NAME SEGMENT_TYPE TABLESPACE
------------------------------ ------------------ ----------
T TABLE USERS
SYS_IL0000075364C00003$$ LOBINDEX USERS
SYS_LOB0000075364C00003$$ LOBSEGMENT USERS
9 rows selected
可以看到,在11g里进行move操作的时候,数据表和XmlType Lob段做到同时移动。
那么move是否有如10g特性呢?
SQL> select object_id, data_object_id, object_name from dba_objects where object_name='T' and wner='SCOTT';
OBJECT_ID DATA_OBJECT_ID OBJECT_NAME
---------- -------------- -------------
75364 75367 T
隐藏虚拟列信息如下:
SQL> select * from col$ where obj#=75364;
OBJ# COL# SEGCOL# SEGCOLLENGTH OFFSET NAME TYPE#
---------- ---------- ---------- ------------ ---------- -------------------- ----------
75364 1 1 22 0 ID 2
75364 2 0 2000 0 CL 58
75364 2 2 4000 0 SYS_NC00003$ 112
对lob段进行move操作。
SQL> alter table t move lob(SYS_NC00003$) store as xmlseg (tablespace system);
Table altered
SQL> select segment_name, segment_type, tablespace_name from user_segments;
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------