ITPub博客

首页 > Linux操作系统 > Linux操作系统 > HOWTO--如何移动一个带有lob字段的表到另外一个表空间

HOWTO--如何移动一个带有lob字段的表到另外一个表空间

原创 Linux操作系统 作者:vongates 时间:2019-03-12 13:12:04 0 删除 编辑
大家都知道在我们建立含有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;
Name      Type         Nullable Default Comments
--------- ------------ -------- ------- --------
FILE_NAME VARCHAR2(25) Y                        
FILE_BIN  BLOB         Y                        
FILE_BIN2 BLOB         Y
                        

SQL>
SQL> select t.segment_name, t.segment_type, t.tablespace_name
  2    from sys.user_segments t
  3    where t.segment_name like 'SYS_%'
  4  /

SEGMENT_NAME                                   SEGMENT_TYPE       TABLESPACE_NAME
---------------------------------------------- ------------------ ------------------------------
SYS_IL0000025842C00003$$                 LOBINDEX           SYSTEM
SYS_IL0000025842C00002$$                 LOBINDEX           SYSTEM
SYS_LOB0000025842C00002$$              LOBSEGMENT         SYSTEM
SYS_LOB0000025842C00003$$              LOBSEGMENT         SYSTEM

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
  2    from sys.user_segments t
  3    where t.segment_name like 'SYS_%'
  4  /

SEGMENT_NAME                                   SEGMENT_TYPE       TABLESPACE_NAME
---------------------------------------------- ------------------ ------------------------------
SYS_IL0000025842C00003$$                 LOBINDEX           SYSTEM
SYS_IL0000025842C00002$$                 LOBINDEX           SYSTEM
SYS_LOB0000025842C00002$$              LOBSEGMENT         SYSTEM
SYS_LOB0000025842C00003$$              LOBSEGMENT         SYSTEM

6 rows selected

SQL> select t.segment_name, t.segment_type, t.tablespace_name
  2  from sys.user_segments t
  3  where t.segment_name like 'TEST_BLOB';

SEGMENT_NAME                                    SEGMENT_TYPE  TABLESPACE_NAME
----------------------------------------------- ------------------ ------------------------------
TEST_BLOB                                           TABLE              TOOLS

SQL> alter table test_blob move tablespace SYSTEM;

Table altered

SQL> ALTER TABLE test_blob MOVE
  2  TABLESPACE tools
  3  LOB (FILE_BIN,FILE_BIN2) STORE AS
  4  (TABLESPACE tools);

Table altered

SQL> select t.segment_name, t.segment_type, t.tablespace_name
  2  from sys.user_segments t
  3  where t.segment_name like 'SYS_%';

SEGMENT_NAME                                            SEGMENT_TYPE       TABLESPACE_NAME
----------------------------------------------------- ------------------ ------------------------------
SYS_IL0000025842C00003$$                         LOBINDEX           TOOLS
SYS_IL0000025842C00002$$                         LOBINDEX           TOOLS
SYS_LOB0000025842C00002$$                      LOBSEGMENT         TOOLS
SYS_LOB0000025842C00003$$                      LOBSEGMENT         TOOLS

6 rows selected

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29987/viewspace-51695/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-11

  • 博文量
    449
  • 访问量
    292664