Chinaunix首页 | 论坛 | 博客
  • 博客访问: 897240
  • 博文数量: 101
  • 博客积分: 2256
  • 博客等级: 大尉
  • 技术积分: 1481
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 17:52
文章存档

2017年(1)

2013年(2)

2012年(25)

2011年(73)

分类: Oracle

2011-04-19 18:37:59

一.大家都知道在我们建立含有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>--完成


阅读(3914) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~