当使用如下语法移动或重建一个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. software testing

    Software Testing Software testing is the process of evaluation a software item to detect differences ...

  2. Your local changes to the following files would be overwritten by merge:

    在服务器改动之后,用sourcetree提交会产生冲突,解决办法:

  3. canvas-9NonZeroAroundPrinciples2.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. iPhone照片格式heic图片怎么打开

    苹果自iOS11系统之后默认的是heic图片格式,在电脑和安卓中都无法直接查看,需要将其转换图片格式,那苹果heic图片怎么转换成jpg格式?下面我们一起来看看吧! 使用工具:电脑.图片 操作方法: ...

  5. Copy Control settings

    Copy Control settings     Skip to end of metadata   Created by Rajesh Banka, last modified by Jyoti ...

  6. C# 动态输出Dos命令执行结果

    本文以一个简单的小例子讲解如何将命令行信息实时的输出到文本框中.仅供学习分享使用,如有不足之处,还请指正. 概述 在C#程序开发过程中,有时需要运行其它的程序并获得输出的结果来进行进一步的处理.一般第 ...

  7. Android 组件的三种点击事件写法

    一.准备工作 1.项目结构 2.布局文件(activity_main.xml) <?xml version="1.0" encoding="utf-8"? ...

  8. Android内存优化(二)解析Memory Monitor、Allocation Tracker和Heap Dump

    前言 要想做好内存优化工作,就要掌握两大部分的知识,一部分是知道并理解内存优化相关的原理,另一部分就是善于运用内存分析的工具.本篇就来介绍内存分析工具:Memory Monitor.Allocatio ...

  9. unity修改脚本的图标

    我们看别人代码时有时看到人家的脚本显示的不是unity的默认图标,而是自己的logo.如: 这样看上去感觉很专业有没有. 修改方法: 1 在Project窗口中点击选中脚本,在Inspector界面点 ...

  10. 【LeetCode】两数相加

    题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. ...