Pergunta

Versão do banco de dados de origem:11.2.0.3
Versão do banco de dados de destino:12.1.0.2

Estou tentando importar todos os links de banco de dados de um banco de dados para outro usando dbms_datapump.O código está sendo executado no banco de dados de destino acima e extraindo os links do banco de dados do banco de dados de origem acima por meio de um link de banco de dados.

Eu usei dbms_datapump.metadata_filter no passado para importar apenas determinados objetos (como funções ou procedimentos).No entanto, o seguinte retorna ORA-39001:valor de argumento inválido:

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

Portanto, tentei a versão plural que também retornou ORA-39001:

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

Eu sei que devo estar faltando algo básico aqui, mas pesquisar sobre esse assunto tem sido irritante, pois os resultados da pesquisa com "dbms_datapump" e "link do banco de dados" na mesma pesquisa retornaram apenas resultados sobre como importar por meio de um link do banco de dados, e não como para importar os links do banco de dados diretamente.

Eu costumava importar os links do banco de dados diretamente usando:

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

Então eu executaria a saída da instrução acima usando execute imediato, mas esta não é mais uma opção válida a partir de 11.2.0.4 (consulte Metalink Doc ID 1905221.1).

Foi útil?

Solução

Não é DATABASE LINK ou DATABASE LINKS, isso é DB_LINK.Você pode encontrar os valores válidos em DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTS e TABLE_EXPORT_OBJECTS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top