[英]Oracle data pump import into existing table
我需要一种将数据从一个数据库复制到另一个数据库的有效方法。 两者均基于Oracle 11g。
挑战:pl sql过程已使用tab_new1和tab_new2。 因此,我在步骤1和2中都创建了两个表。在步骤3和4中,我仅导入和导出数据。 但是tab_new1和tab_new2还有其他列->导入失败。 我尝试创建没有新列的视图。
导入失败,并显示以下错误消息:
ORA-31693: Table data object "Schema"."tab_old1" failed to load/unload and is being skipped due to error:
ORA-31603: object “tab_old1” of type TABLE not found in schema “Schema”
ORA-31693: Table data object "Schema"."tab_old2" failed to load/unload and is being skipped due to error:
ORA-31603: object “tab_old2” of type TABLE not found in schema “Schema”
这些视图称为tab_old1和tab_old2,但它们当然不是TABLE类型的。
有任何想法吗?
如何从带有其他列的现有表中的tab_old1导入数据?
我不想在第一步中导出/导入表,对其进行重命名,然后再安装pl sqls过程。
你可以帮帮我吗?
编辑:
感谢您的回答。 我两次尝试了您的示例,但是remap_table函数对我不起作用。 导入:11.1.0.6.0版-64位生产。
编辑2:是的。 我的oracle版本似乎有问题。 remap_table函数将被忽略。 我可以像remap_table = not.existing / table这样写废话,而impdp对此不屑一顾。 好吧,我没有时间解决这个问题。 我必须努力工作。 无论如何,感谢您的帮助。
确定,所以您要使用content = data_only进行导入,并且已将tab_old1重命名为tab_new1并添加了几列?
指定导入时放置remap_table = tab_old1:tab_new1
只要新列可为空,这将起作用。
例如:
SQL> create table foo(id number);
Table created.
SQL> insert into foo select rownum from dual connect by level <= 5;
5 rows created.
SQL> commit;
Commit complete.
SQL> host expdp test/test tables=foo directory=data_pump_dir
Export: Release 11.2.0.2.0 - Production on Thu Nov 8 15:40:18 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "TEST"."SYS_EXPORT_TABLE_01": test/******** tables=foo directory=data_pump_dir
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "TEST"."FOO" 5.031 KB 5 rows
Master table "TEST"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for TEST.SYS_EXPORT_TABLE_01 is:
/u01/app/oracle/admin/dtd64bit1/dpdump/expdat.dmp
Job "TEST"."SYS_EXPORT_TABLE_01" successfully completed at 15:40:30
SQL> delete from foo;
5 rows deleted.
SQL> alter table foo add (a varchar2(200));
Table altered.
SQL> alter table foo rename to foo2;
Table altered.
和你原来的错误?
SQL> host impdp test/test tables=foo directory=data_pump_dir content=data_only
Import: Release 11.2.0.2.0 - Production on Thu Nov 8 15:42:17 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "TEST"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "TEST"."SYS_IMPORT_TABLE_01": test/******** tables=foo directory=data_pump_dir content=data_only
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-39034: Table TABLE_DATA:"TEST"."FOO" does not exist.
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UPATE_TD_ROW_IMP [15]
TABLE_DATA:"TEST"."FOO"
ORA-31603: object "FOO" of type TABLE not found in schema "TEST"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 8641
所以重新映射..
SQL> host impdp test/test tables=foo remap_table=foo:foo2 directory=data_pump_dir content=data_only
Import: Release 11.2.0.2.0 - Production on Thu Nov 8 15:42:33 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "TEST"."SYS_IMPORT_TABLE_02" successfully loaded/unloaded
Starting "TEST"."SYS_IMPORT_TABLE_02": test/******** tables=foo remap_table=foo:foo2 directory=data_pump_dir content=data_only
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "TEST"."FOO2" 5.031 KB 5 rows
Job "TEST"."SYS_IMPORT_TABLE_02" successfully completed at 15:42:37
SQL> select * from foo2;
ID A
---------- ----------
1
2
3
4
5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.