oracle10G数据迁移问题
来源:百度知道 编辑:UC知道 时间:2024/06/10 02:32:40
我现在想把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用户