我只需将一个表从完整备份 (expdp) 导入到同一数据库上新创建的表。
那么我可以直接用新名称导入表吗?或者我必须先使用相同的参数创建一个新表然后导入?
impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_TABLE=hr.employees:emps
另一个问题是 remap_table 会影响我已经存在的员工表吗?或者它只会创建一个名为 emps 的新表并将员工数据从转储导入到其中?
......................更新............
我发现oracle 10g中没有remap_table所以我可以使用这个方法吗:
create user johny identified by 1234;
grant create session to johny;
impdp system/****** DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp LOGFILE= tb_imp.log TABLES='HR.employees' REMAP_SCHEMA=HR: johny;
我们只是暂时需要这张桌子,以便我稍后可以放下约翰尼。而且上面的方法不会影响hr schema中原来的employees表,对吧?
Oracle将从您的转储文件中导入表employees并将其重命名为emps,如果employees表存在,则不会受到影响,如果emps表已存在,则不会执行任何操作。 您可以使用 table_exists_action 参数来更改表存在时的行为,指定: