Oracle修改表Table所属表空间及Clob、Blob字段的处理

我们会发现通过exp、imp导入库的表所属表空间还是导出时的表空间,那么假如我们导入的数据库表空间和导入时的数据库表空间不一致时就会比较麻烦,这里我们主要处理,已经导入的表所属表空间不是指向我们所要的表空间时如何修改。

1、查看表当前所属表空间

SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES -- WHERE TABLE_NAME=‘test‘ --可以加上条件
        比如我们看到我的库里有两个表表空间是USERS,而非我们自建的FCCMS
![image.png](https://upload-images.jianshu.io/upload_images/17282254-51b4666e5e8e4bb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

这时候我们就可以修改表空间为USERS的两个表所属的表空间

2、确认需要修改的批量组装成修改SQL语句

SELECT ‘alter table ‘||TABLE_NAME||‘ move tablespace FCCMS;‘ FROM USER_TABLES WHERE TABLESPACE_NAME = ‘USERS‘
        得到如下结果
![image.png](https://upload-images.jianshu.io/upload_images/17282254-a753993ed3189b0a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

现在我们赋值查询结果,粘贴至命令框进行执行

3、执行表空间修改
![image.png](https://upload-images.jianshu.io/upload_images/17282254-d626cf913df7f94d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

4、查看修改结果
![image.png](https://upload-images.jianshu.io/upload_images/17282254-eb9ac1b6b3c9bfcb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

成功!

修改表索引同上

SELECT ‘alter index ‘|| INDEX_NAME ||‘ rebuild tablespace FCCMS;‘ FROM user_indexes;
        PS:这里需要注意如果表里包含的CLOB、BLOB及相关LOB的字段,需单独做修改索引处理 
1、select * from user_indexes where index_name like ‘SYS%‘;--通过这个语句查询出含有LOB字段相关的表格。
2、desc SCREENING_IWL_ENTITY;
3、ALTER TABLE 表名 MOVE LOB(‘含有LOB的字段名‘) STORE AS(TABLESPACE 索引表空间名);

select table_name from user_tab_columns where data_type in(‘CLOB‘,‘BLOB‘);

原文地址:https://www.cnblogs.com/liutoliu/p/11818662.html

时间: 2024-10-09 23:38:09

Oracle修改表Table所属表空间及Clob、Blob字段的处理的相关文章

Oracle如何通过dataLink复制远程数据库的CLOB\BLOB字段数据到本地数据库

Oracle不支持直接通过Database Link复制远程数据库表的CLOB/BLOB字段数据到本地数据库. 像如下的SQL是不能执行的.(ipop_topic表有一个CLOB的字段) insert into ipop_topicselect * from [email protected] where application_id=1000 但是,我们可以借助全局临时表,先把数据复制到临时表,再从临时表转移到你的目的表. create global temporary table ipop_

MaxCompute 表(Table)设计规范

表的限制项表(Table)设计规范 表设计主要目标 表设计的影响表设计步骤表数据存储规范 按数据分层规范数据生命周期按数据的变更和历史规范数据的保存数据导入通道与表设计分区设计与逻辑存储的对应表和分区设计基本规则分区设计 分区字段和普通字段的选择分区字段定义依据分区个数定义依据分区数量和数据量建议表的限制项 表(Table)设计规范 表设计主要目标降低存储成本. 合适的表设计可以在数据分层设计上降低冗余存储,减少中间表数据量大小.同时正 确的对表数据进行生命周期管理,更能够直接降低存储的数据量以

odp.net 读写oracle blob字段

DEVELOPER: ODP.NET Serving Winning LOBs: http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65odpnet-085139.html Data Provider for .NET Developer's Guide: https://docs.oracle.com/database/121/ODPNT/OracleBlobClass.htm#ODPNT4035 从blob字段读取一个图

ORACLE修改用户表所属表空间的步骤

ORACLE修改用户表所属表空间的步骤 使用脚本进行修改.据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!正常情况下的修改脚本:1.修改表的空间alter table TABLE_NAME move tablespace TABLESPACENAME 查询当前用户下的所有表select 'alter table  '|| table_name ||'  move tablespace tablespacename;'  from use

Oracle 批量修改某个用户下表的表空间

说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接 思路:拼凑一个满足条件的批处理查询语句,将查询的结果复制出来作为批处理语句执行.具体步骤如下: 1.写查询 --查询某个用户下的表,并生成一个修改其命名空间的批处理语句 select 'alter table '|| table_name ||' move tablespace 要迁入的表空间;' from dba_tables t where t.o

oracle修改表空间

1.先找到这哪些表的表空间不对 select * from dba_tables where tablespace_name='TDB'; 2.将表空间在 TDB 中的移到表空间 TDB2009 中 语法是:alter table table_name move tablespace tablespace_name; alter table tdb2009.ASSOC_INFO move tablespace TDB2009; alter table tdb2009.BGUSERPOPD mov

ORACLE修改表空间方法

一.使用imp/exp.先导出源库,再创建新库把表空间创建好,然后再导入.(据说这样可以,前提是新的库里面不能有与源库相同名字的表空间.有待验证!) 二.使用脚本进行修改.据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表的空间 alter table TABLE_NAME move tablespace TABLESPACENAME  查询当前用户下的所有表 select 'alter table 

[转载]Oracle修改表空间大小

Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据的原因.如果在建立数据库时没有设置, Oracle 默认的表空间大小为400M,当数据库中数据量达到这个值,再向数据库中导入数据就会报错.解决方法是 扩展表空间.可以选择将表容量扩大,比如扩展到5G,或者当表空间不够时每次自动增加一定的容量,如每次自增200M. 下面列出详细过程: 1.通过sql

oracle的表如何跨表空间存储

oracle的一个表所在表空间,空间已经占满,其他表空间有剩余空间.实现表存在另外的表空间. 方案一:利用原表重建分区表 1:原表temp,存在字段id,time; 2:temp存在纪录; 3:根据原表temp创建新的分区表temp_new CREATE TABLE temp_new (ID, TIME) PARTITION BY RANGE (TIME) ( PARTITION P1 VALUES LESS THAN (TO_DATE('2004-7-1', 'YYYY-MM-DD')) TA