关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)
用户: whnaproject 所属表空间: whnaproject
新用户 : wniec 所属新表空间: wniec
要求:将用户whnaproject中的数据库表以及数据 ,全部复制到 新表空间wniec的 wniec用户中。
常规过程:用exp命令把用户whnaproject的表及数据导出,然后用IMP命令把导出的表及数据导入到新用户wniec中。
存在问题:用户whnaproject的表及数据可以导入到新用户wniec中,但wniec中的导入的表所属的表空间还是原来导出用户whnaproject的所属表空间whnaproject ,而不是我想要的新表空间wniec。
解决方法:
1. select * from user_tables 可以查询出当前用户所属表的所属表空间信息。

2. 修改用户表table的表空间:alter table 表名 move tablespace 新表空间名;可以采用批量更新的方式,如下:
select 'alter table '||table_name||' move tablespace wniec;' from user_tables where tablespace_name <>'wniec'
这样能保证表结构及数据都能转移到新的表空间中,其它一些方式只能转移表结构,数据无法复制过来。
3. 如果用户表中的字段类型含有 “LONG”、“BLOB”、"CLOB",则该类表不能直接采用上述MOVE语句移动。如果表无数据,则直接重建表时,修改表空间即可。如有数据可参考4、5两种方式处理。
4. 字段类型为 “LONG”的表不能采用MOVE方式处理,只能采用COPY方式处理,还未验证。
5. “BLOB”、"CLOB"为LOB类型,可参照下面该类型的处理方式进行移动,还未验证。
注意事项:
1.move操作只能在数据库空闲的时候。
2.move以后记得重建index。
3.move表空间会改变rowid,如果程序中使用其运算,可能产生奇怪的问题,且很难恢复
---------------------------------------参考--------------------------------------------
批量更改ORACLE中表、索引的表空间
ORACLE中表、索引的表空间的批量更改方法
1、查询当前用户下的所有表
select 'ALTER TABLE '|| table_name ||' MOVE TABLESPACE tablespacename;' from user_all_tables;
select 'ALTER TABLE '|| table_name ||' MOVE TABLESPACE tablespacename;' from user_tables;
2、查询当前用户下的所有索引
select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes;
3、在当前用户下将查询结果批处理执行即可!
简单来说,操作以下几步:
--查找所有的表,然后复制查询出来的结果,执行sql
select 'alter table '||table_name||' move tablespace 表空间名;' from user_all_tables
--查找所有的索引,然后复制查询出来的结果,执行sql
select 'alter index '||index_name||' rebuild tablespace 表空间名;' from user_indexes
--处理lob类型
alter table 表名 move tablespace 表空间名 lob(字段1) store as (tablespace 表空间名)
--修改分区表的表空间
alter table 表名 move partition 分区名1 tablespace 表空间名;
alter table 表名 move partition 分区名2 tablespace 表空间名;
查看所有的unusable索引
SELECT *
FROM user_indexes
WHERE status NOT IN ('VALID', 'N/A')
ORDER BY index_name;
-- Description : Displays unusable indexes for the specified schema or all schemas.
-- Requirements : Access to the DBA views.
-- Call Syntax : @unusable_indexes (schema-name or all)
SET VERIFY OFF
SELECT owner,
index_name
FROM dba_indexes
WHERE owner = DECODE(UPPER('&1'), 'ALL', owner, UPPER('&1'))
AND status NOT IN ('VALID', 'N/A')
ORDER BY owner, index_name;
关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)的更多相关文章
- sql 从一个库中取某个表的数据导入到另一个库中相同结构的表中
sql 2008 从一个库中把 某个表中的数据导入到另一个库中的具有相同结构的表中 use 库1 go insert into 库1.dbo.表1 select * from 库2.dbo.表1 ...
- 利用Sql实现将指定表数据导入到另一个数据库示例
因为工作中经常需要将数据从一个数据库导入到另一个数据库中,所以将这个功能写成一个存储过程,以方便调用.现在粘贴出来供大家参考: 注意:1,以下示例中用到了syscolumns,sysobjects等系 ...
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sq ...
- SqlServer一张表数据导入另一张表,收藏使用,工作中更新数据错误很有用
sql一张表数据导入另一张表 1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO 目标表 SELECT * FROM 来源表; 2.比如要将 arti ...
- SQL把表中的数据复制到另一个数据库中
1 删除整张表的数据,并还原自增长值TRUNCATE TABLE TbWeixinActivity 2 3张表左连接select a.ID,c.Name,b.nickname,a.CreateDate ...
- SQL数据库中把一个表中的数据复制到另一个表中
1.如果是整个表复制表达如下: insert into table1 select * from table2 2.如果是有选择性的复制数据表达如下: insert into table1(colu ...
- sql将一个表中的数据插入到另一个表中
sql将一个表中的数据插入到另一个表中 列名不一定要相同,只要你在HH中列出要插入列的列表跟select from mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的. ...
- hivesql-一个表中的数据不在另一个表中
如何最有效的判断 一个表中的数据不在另一个表中 两个方法一个是join 另一个是 exist 方法
- python连接mysql数据表查询表获取数据导入到txt中
import pymysql'''连接mysql数据表查询表获取数据导入到txt中'''#查询结果写入数据到txtdef get_loan_number(file_txt): connect = py ...
随机推荐
- 143. Reorder List
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do thi ...
- [JSP] c:forEach 输出序号 每行自动生成序号
关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...
- hdu 2795 线段树(二维问题一维化)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- XML的解析方式(DOM、SAX、StAX)
(新) XML的解析方式(DOM.SAX.StAX) 博客分类: XML 一般来说,解析XML文件存在着两种方式,一种是event-based API,比如说象SAX,XNI. 第二种是tree ...
- 最小二乘法 java
import java.util.ArrayList; import java.util.Collection; import org.apache.commons.math3.optim.Point ...
- URAL 1069 Prufer Code(模拟)
Prufer Code Time limit: 0.25 secondMemory limit: 8 MB A tree (i.e. a connected graph without cycles) ...
- 穿越泥地(mud) (BFS)
问题 C: 穿越泥地(mud) 时间限制: 1 Sec 内存限制: 128 MB提交: 16 解决: 10[提交][状态][讨论版] 题目描述 清早6:00,FJ就离开了他的屋子,开始了他的例行工 ...
- JS 索引数组、关联数组和静态数组、动态数组
JS 索引数组.关联数组和静态数组.动态数组 数组分类: 1.从数组的下标分为索引数组.关联数组 var ary1 = [1,3,5,8]; //按索引去取数组元素,从0开始(当然某些语言实现从1开始 ...
- poj3159 最短路(差分约束)
题意:现在需要分糖果,有n个人,现在有些人觉得某个人的糖果数不能比自己多多少个,然后问n最多能在让所有人都满意的情况下比1多多少个. 这道题其实就是差分约束题目,根据题中给出的 a 认为 b 不能比 ...
- tomcat maven book
https://www.amazon.com/gp/aw/d/0596517335/ref=pd_aw_sim_14_3?ie=UTF8&psc=1&refRID=H34H0BX247 ...