移动带有LOB字段的表到另一个表空间

LOB这几个字符最近一直在眼前晃悠,今天研究了下。
1. LOB类型
CLOB:存储大量、单字节、字符数据,存储在内部表空间
NLOB:存储定宽、多字节、字符数据,存储在内部表空间
BLOB:存储较大无结构的二进制数据,存储在内部表空间
BFILE:将二进制文件存储在数据库外部的操作系统文件中,存放文件路径。

2. 我们在建立含有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 (tablespace tbs_name);

3. 示例,我们创建两张含有LOB字段的表,然后移动到其他表空间。
a. 创建两张含有lob字段的表
connect test/test
create table test_blob(name varchar2(10),bin1 blob,bin2 blob);
create table test_blob2(name varchar2(10),bin1 blob,bin2 blob) tablespace users;
b.查看表所属的表空间
SQL> select table_name,tablespace_name from user_tables where table_name like '%TEST_BLOB%';
 
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEST_BLOB                      TEST_TAB
TEST_BLOB2                     USERS
c. 查看两个表的字段信息
SQL> desc test_blob
Name Type         Nullable Default Comments
---- ------------ -------- ------- --------
NAME VARCHAR2(10) Y                        
BIN1 BLOB         Y                        
BIN2 BLOB         Y
SQL> desc test_blob2
Name Type         Nullable Default Comments
---- ------------ -------- ------- --------
NAME VARCHAR2(10) Y                        
BIN1 BLOB         Y                        
BIN2 BLOB         Y  
d. 移动test_blob表
SQL> alter table test_blob move tablespace users lob(BIN1,BIN2) store as (tablespace users);
 
Table altered
 
SQL> select table_name,tablespace_name from user_tables where table_name like '%TEST_BLOB%';
 
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEST_BLOB                      USERS
TEST_BLOB2                     USERS
e. 移动test_blob2表
SQL> alter table test_blob2 move tablespace test_tab lob(BIN1,BIN2) store as (tablespace test_tab);
 
Table altered
 
SQL> select table_name,tablespace_name from user_tables where table_name like '%TEST_BLOB%';
 
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEST_BLOB                      USERS
TEST_BLOB2                     TEST_TAB

f. 可以看到表所在的表空间move完成。

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

转载于:http://blog.itpub.net/21374452/viewspace-2129560/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值