源数据库版本:11.2.0.3
目标数据库版本:12.1.0.2

我正在尝试使用dbms_datapump将所有数据库链接从一个数据库导入到另一个数据库。代码正在上面的目标数据库上运行,并通过数据库链接从上面的源数据库中提取数据库链接。

我已经使用了dbms_datapump。metadata_filter过去只导入某些对象(如函数或过程)。但是,以下返回ORA-39001:参数值无效:

dbms_datapump.metadata_filter(h1,'INCLUDE_PATH_EXPR','IN (''DATABASE LINK'')');

因此,我尝试了复数形式,也返回了ORA-39001:

dbms_datapump.metadata_filter(h1,'INCLUDE_PATH_EXPR','IN (''DATABASE LINKS'')');

我知道我必须在这里缺少一些基本的东西,但是在这个问题上搜索一直很烦人,因为在同一个搜索中使用"dbms_datapump"和"数据库链接"的搜索结果只返回了如何通过数据库链接导入的结果,而不是如何直接导入数据库链接。

我曾经能够直接使用导入数据库链接:

select DBMS_LOB.SUBSTR@dblinkimp(DBMS_METADATA.GET_DDL@dblinkimp
('DB_LINK', '[DBlinkName]', '[SchemaName]')) from dual@dblinkimp;

然后我会使用execute immediate运行上述语句的输出,但从11.2.0.4开始,这不再是一个有效的选项(请参阅Metalink Doc ID1905221.1)。

有帮助吗?

解决方案

它不是 DATABASE LINKDATABASE LINKS, ,它是 DB_LINK.您可以在以下位置找到有效值 DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTSTABLE_EXPORT_OBJECTS.

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top