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); 下面我们来看一个例子吧。。

二.示例如下,我创建了2张表,都含有2个BLOB字段。然后移动表到其它表空间。

SQL> create table test_blob(name varchar2(10),bin1 blob,bin

表已创建。

SQL> create table test_blob2(name varchar2(10),bin1 blob,bi

2 tablespace system;

表已创建。

SQL> desc dba_tables;--查看视图的结构

名称 是否为空? 类型

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

OWNER NOT NULL VARCHAR

TABLE_NAME NOT NULL VARCHAR

TABLESPACE_NAME VARCHAR

CLUSTER_NAME VARCHAR

IOT_NAME VARCHAR

STATUS VARCHAR

PCT_FREE NUMBER

PCT_USED NUMBER

INI_TRANS NUMBER

MAX_TRANS NUMBER

INITIAL_EXTENT NUMBER

NEXT_EXTENT NUMBER

MIN_EXTENTS NUMBER

MAX_EXTENTS NUMBER

PCT_INCREASE NUMBER

FREELISTS NUMBER

FREELIST_GROUPS NUMBER

LOGGING VARCHAR

BACKED_UP VARCHAR

NUM_ROWS NUMBER

BLOCKS NUMBER

EMPTY_BLOCKS NUMBER

AVG_SPACE NUMBER

CHAIN_CNT NUMBER

AVG_ROW_LEN NUMBER

AVG_SPACE_FREELIST_BLOCKS NUMBER

NUM_FREELIST_BLOCKS NUMBER

DEGREE VARCHAR

INSTANCES VARCHAR

CACHE VARCHAR

TABLE_LOCK VARCHAR

SAMPLE_SIZE NUMBER

LAST_ANALYZED DATE

PARTITIONED VARCHAR

IOT_TYPE VARCHAR

TEMPORARY VARCHAR

SECONDARY VARCHAR

NESTED VARCHAR

BUFFER_POOL VARCHAR

ROW_MOVEMENT VARCHAR

GLOBAL_STATS VARCHAR

USER_STATS VARCHAR

DURATION VARCHAR

SKIP_CORRUPT VARCHAR

MONITORING VARCHAR

CLUSTER_OWNER VARCHAR

DEPENDENCIES VARCHAR

COMPRESSION VARCHAR

DROPPED VARCHAR

SQL> select table_name,tablespace_name from dba_tables where

2 table_name like 'TEST%';--查询两个表的所属表空间;

TABLE_NAME TABLESPACE_NAME

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

TEST_BLOB2 SYSTEM

TEST_BLOB USERS

SQL> desc test_blob;--确认表的结构

名称 是否为空? 类型

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

NAME VARCHAR

BIN1 BLOB

BIN2 BLOB

SQL> desc test_blob2--确认表的结构

名称 是否为空? 类型

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

NAME VARCHAR

BIN1 BLOB

BIN2 BLOB

SQL> alter table test_blob move tablespace system

2 lob(BIN1,BIN2) store as (tablespace system);--移动表;

表已更改。

SQL> select table_name,tablespace_name from dba_tables

2 where table_name like 'TEST%';--查看表的所属表空间;

TABLE_NAME TABLESPACE_NAME

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

TEST_BLOB2 SYSTEM

TEST_BLOB SYSTEM

SQL> alter table test_blob2 move tablespace users

2 lob(BIN1,BIN2) store as (tablespace users);--移动表

表已更改。

SQL> select table_name,tablespace_name from dba_tables

2 where table_name like 'TEST%';--查看表的所属表空间;

TABLE_NAME TABLESPACE_NAME

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

TEST_BLOB2 USERS

TEST_BLOB SYSTEM

SQL>--完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值