oracle的导入导出 我有两张表a和b,表结构不一样,两张表的索引都是id,并且a.id和b.id可以连接。现在需要查询出表a中a.id=b.id的所有数据,将这部分数据保留,然后把表a的数据全部清掉,导入保留的数据,a的数据量大概是一千多万,b的数据量最多几百万。我想将表a需要的数据导成dmp文件,然后再将dmp文件导到表a中,请问具体的操作步骤要怎么写?(用户名/口令假设为user/passwd) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先建一个中间表Ccreate table c as select * from a where exisits(select 1 from b where a.id=b.id);然后truncate table a;然后insert into a select * from c;不需要导出导入了吧 b里也有几百万的数据,直接insert几百万的数据时间上会不会很长? 一般性能的服务器,几百万数据INSERT应该是没有多大影响的~~~如果怕慢,可以考虑并行 exp name/pwd@test tables=(a) file=d:\a.dump;imp name/pwd@test file=d:\a.dump tables=(table1);如果表存在的情况下导入,需要加上ignore=y记得,导入的时候,a表需要truncate 或者drop 掉,这两者都是不可恢复的。如果用导入和导出的话速度是会快一些,不过为了保险,还是多做几次测试。可以再去网上查一下导入导出命令的具体用法。 可以,导出的时候就用EXPDP + SQL 语句过滤出你想要的清空后倒入即可 菜鸟问题,请问游标怎么关闭的? Oracle数据库问题 俺要去华为面试,请教华为的面试体型 求一sql语句 Oracle数据库布置的问题。 数据库系统表有坏块,如何修复呀??走过路过的帮忙楚楚主意,谢谢先。 菜鸟问题:如何创建normal用户? 我的操作系统是2003server,安装oracle92时提示,不是有效的WIN32程序 :( VC++中如何使用户以SYSDBA/SYSOPER登录? 高分求助Oracle 8.1.7的奔4 补丁!!! 执行存储过程出现ORA-00900:invalid SQL statement 求一条SQL语句
create table c as select * from a where exisits(select 1 from b where a.id=b.id);然后truncate table a;然后insert into a select * from c;不需要导出导入了吧
如果怕慢,可以考虑并行
imp name/pwd@test file=d:\a.dump tables=(table1);如果表存在的情况下导入,需要加上ignore=y
记得,导入的时候,a表需要truncate 或者drop 掉,这两者都是不可恢复的。
如果用导入和导出的话速度是会快一些,不过为了保险,还是多做几次测试。可以再去网上查一下导入导出命令的具体用法。