当使用如下语法移动或重建一个lob分区对象,将报错:
SQL> alter table SHOW_LOB_STORAGE move lob(DDD) store as (tablespace PARTFORLOB03);
ORA-14511: cannot perform operation on a partitioned object
 
正确的语法如下:
alter table <table name> move partition <table partition name> <table partition tablespace_name> lob (<lob column name>) store as <optional lob partition name> (tablespace <lob tablespace name>);
alter table <table name> move partition <table partition name> <table partition tablespace_name> lob (<lob column name>) store as (tablespace <lob tablespace name>);
 
实验如下:
1、创建表空间
create tablespace part_01 datafile '+DATADG' size 30M;
create tablespace part_02 datafile '+DATADG' size 30M;
create tablespace part_03 datafile '+DATADG' size 30M;
create tablespace lob_01 datafile '+DATADG' size 30M;
create tablespace lob_02 datafile '+DATADG' size 30M;
create tablespace lob_03 datafile '+DATADG' size 30M;
2、创建lob表分区
create table t (aaa number(5), bbb varchar2(10), ccc number(5), ddd clob ) partition by range(aaa) (
partition p1 values less than (50) tablespace part_01 lob (ddd) store as (tablespace lob_01),
partition p2 values less than (100) tablespace part_02 lob (ddd) store as (tablespace lob_02),
partition p3 values less than (maxvalue) tablespace part_03 lob (ddd) store as (tablespace lob_03));
insert into t values (11,'a',111,'clob_a');
insert into t values (51,'b',222,'clob_b');
insert into t values (101,'c',333,'clob_c');
commit;
 3、查看lob分区信息
set pagesize 180
col segment_name format a25
col segment_type format a16
col tablespace_name format a13
col partition_name format a15
select segment_name, segment_type, tablespace_name, partition_name from user_segments order by segment_name, partition_name;
select partition_name, lob_partition_name, tablespace_name from user_lob_partitions where table_name = 'T';
select table_name,def_tablespace_name from user_part_tables;
select table_name,column_name,lob_name,lob_index_name from user_part_lobs;
select table_name,partition_name,tablespace_name from user_tab_partitions where table_name='T';
4、move或重建lob分区对象
1)只迁移表分区P2中的lob对象到表空间lob_03
alter table t move partition P2 lob(DDD) store as (tablespace lob_03);
2)迁移表分区P1中lob对象到表空间lob_03,且重命名lob对象名称
alter table t move partition P1 lob(DDD) store as SYS_LOB_P227_111 (tablespace lob_03);  
3)迁移表分区P3中的lob对象到表空间 lob_01中,且表分区P3的表空间迁移到表空间 part_02
alter table t move partition P3 tablespace part_02 lob(DDD) store as (tablespace lob_01);
4)如果增加新的分区,还会使用用户或表默认使用的表空间,需修改分区表的表空间attribute
alter table t modify default attributes tablespace part_new; 
select def_tablespace_name from user_part_tables where table_name='T';

注意:
1、move分区表的lob对象,不应该去查user_lobs视图,而是应该去查user_lob_partitions视图。
2、move包含有blob对象的分区表到新的表空间情形:
---将表分区、lob对象全move到单独一个新表空间tbs_new中,语法类似如下:
alter table t move partition p_1 tablespace tbs_new
lob (lob1) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
......
alter table t move partition p_n tablespace tbs_new
lob (lob1) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
---如果将每个表分区、每个lob对象分别存储不同的表空间,则如下:
alter table t move partition p_1 tablespace tbs_1_1
lob (lob1) STORE as (tablespace tbs_2_1 ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_3_1 ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
......
alter table t move partition p_n tablespace tbs_1_n
lob (lob1) STORE as (tablespace tbs_2_n ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_3_n ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
3、新的分区(如interval的自动生成的新分区)还是会使用原来的(move前)表空间,需要修改分区表的默认存储表空间的属性:
alter table t modify default attributes tablespace tbs_new;
select def_tablespace_name from user_part_tables where table_name='T';
此时,今后生成的新分区才会去新的表空间,而不是老的表空间。

move或rebuild lob分区对象的更多相关文章

  1. How To Move Or Rebuild A Lob Partition

    How To Move Or Rebuild A Lob Partition [ID 761388.1]             改动时间 29-JUN-2010     类型 HOWTO     状 ...

  2. [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏

    Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...

  3. JavaEE JDBC 读写LOB大对象

    JDBC 读写LOB大对象 @author ixenos LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其他数据, 在SQL中,二进制(字节型)大对象称为BLOB,字符型大 ...

  4. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

    在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段.下面 ...

  5. Oracle LOB 大对象处理

    LOB类型列主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据. 一.LOB数据类型分类 1.按存储数据的类型分: ①字符类型:   CLOB:存储大量 单字节 字符数据.   N ...

  6. LOB对象在数据泵导出、导入后查询对象数量发现丢失

    问题描述:问题:源库的某个Schema使用数据泵Expdp元数据整体导出,在目标库导入且成功后,逻辑验证用户对象,发现缺失.分析查询后,缺失的对象,都是LOB类型(并不是所有的LOB都无法导入,是大部 ...

  7. std::move 移动对象资源

    场景: C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了. ...

  8. 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?

    前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...

  9. Oracle表空间迁移Move Tablespace

    move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效.(LOB类型例外) move分为: *普通表move *分区表move *LONG,LOB大字段类型move来进行测试和说明. ...

随机推荐

  1. Laravel 系列入门教程(二)【最适合中国人的 Laravel 教程】

    本篇文章中,我将跟大家一起体验 Laravel 框架最重要的部分——路由系统. 如果你读过 2015 版的教程,你会发现那篇文章里大书特书的 Auth 系统构建已经被 Laravel 捎带手给解决了. ...

  2. 魔幻般冒泡背景的CSS3按钮动画

    这是一款非常有特点的CSS3按钮,按钮的背景不是北京图片,也不是单纯的颜色,而是一组魔幻般的冒泡背景动画.当我们将鼠标滑过按钮时,按钮的冒泡背景动画就可以展示出来.可以说这款CSS3按钮的设计风格相当 ...

  3. JAVA 多线程(3)

    再讲线程安全: 一.脏读 脏读:在于读字,意在在读取实例变量时,实例变量有可能被另外一个线程更改了,导致获取到的数据出现异常. 在非线程安全的情况下,如果线程A与线程B 共同使用对象实例C中的方法me ...

  4. DEM山体阴影原理以及算法具体解释

    山体阴影原理以及算法具体解释 山体阴影基本原理: 山体阴影是假想一个光源在某个方向和某个太阳高度的模拟下.用过临近像元的计算来生成一副0-255的灰度图. 一.山体阴影的主要參数: 1.  太阳光线的 ...

  5. hadoop java上传文件

    import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; impo ...

  6. c/c++ 链栈

    c/c++ 链栈 链栈 下面的代码实现了以下功能 函数 功能描述 push 压入 pop 弹出 show_list 打印 clear 释放所有内存空间 destroy 释放所有内存空间 nodesta ...

  7. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  8. http网站转换成https网站

    https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题   一:什么是https SSL(Security   Socket  ...

  9. 复制 cmd 窗口文本三步曲:

    1:右键菜单点"标记": 2:按住左键选文字: 3:选完右键点一下!  (关键一步,只需点一下就好!!) so 待选文字就跑到剪切板上了

  10. 【算法】LeetCode算法题-Implement strStr

    这是悦乐书的第151次更新,第153篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第10题(顺位题号是28).给定两个任意字符串haystack.needle,返回hay ...