首页 > 代码库 > Oracle 批量修改某个用户下表的表空间

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

说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接

思路:拼凑一个满足条件的批处理查询语句,将查询的结果复制出来作为批处理语句执行。具体步骤如下:

1、写查询

--查询某个用户下的表,并生成一个修改其命名空间的批处理语句
select alter table  || table_name ||  move tablespace 要迁入的表空间; from dba_tables t where t.owner=要迁出的表归属的用户名; 

补充:

--查询当前库下所有的表
SELECT * FROM DBA_TABLES 
--可以加入筛选条件
SELECT * FROM DBA_TABLES WHERE TABLE_NAME LIKE EM_%
SELECT * FROM DBA_TABLES WHERE OWNER=某个用户名; 
--查询用户表
SELECT * FROM USER_TABLES

2、执行查询结果,得到一个批处理语句,截图如下:

技术分享

3、复制出查询结果,批处理执行

技术分享

 参考网站(请关注):ORACLE修改用户表所属表空间的步骤

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