oracle10G数据迁移问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 02:32:40
比如我oracle10G里有两个用户.一个A用户.一个B用户.
我现在想把B用户下表的数据迁移至A用户的表里
因为B用户表的字段和结构跟A用户下的表不同
所以我打算舍弃一些B的字段。把指定字段下的数据迁移至A用户的表里

举个例子
A用户下的tb_a表结构
id username pwd

B用户下的tb_a表结构
id name pwd qita1 qita2

我只想把b用户tb_a表的name和pwd的数据迁移至A用户的tb_a里.

有没有什么工具或者方法能帮我下?
补充一下.
数据量大概在20W条左右
insert into A.tb_a
select id,name,pwd from B.tb_a;

这种方法可行吗?

用得着toad吗
用dba帐户登入
insert into A.tb_a
select id,name,pwd from B.tb_a;
commit;
不就行了

利用toad工具实现

在B用户下:
select name,pwd from tb_a
然后导出成sql脚本

insert into tb_a (username,pwd) values ('xxxxx','xxxxx');
insert into tb_a (username,pwd) values ('xxxxx','xxxxx');
....
导出成这样的sql脚本,另存起来

然后在oracle sqlplus下用A用户登陆,将此sql脚本导入即可
在sqlplus环境下输入命令
@+路径+文件名+;
例如@d:\dddd.txt;
最后commit;即可

回答补充:
是在toad里生成的,select出来以后,在结果集上用鼠标右键,save as ,然后选择格式,常用的就是xls格式和sql脚本格式

再补充:
如果不会sql脚本,xls格式也可以,出来以后用excel处理,在excel里用字符拼接的办法,也可以生成我开始说的那样脚本,然后copy到txt文本里,sqlplus导入

insert into A.tb_a select name,pwd from b.tb_a .

如果你愿意 那就手写吧

解决方法大体有两种:
1、使用大权限用户(如sys用户)登入数据库
--先备份A用户数据
create table a.tb_a_bak as select * a.from tb_a;
--删除A用户表tb_a中原有数据,以免造成主键冲突
truncate table a.tb_a;
--导入B用户的数据到A用户