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 puxando os links de 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'')');
Sei que devo estar perdendo algo básico aqui, mas pesquisar sobre esse problema tem sido irritante, pois os resultados da pesquisa com "dbms_datapump" e "link de banco de dados" na mesma pesquisa retornaram apenas resultados com como importar por um link de 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;
Em seguida, executaria a saída da instrução acima usando execute imediato, mas essa não é mais uma opção válida a partir de 11.2.0.4 (consulte Metalink Doc ID 1905221.1).
Não é
DATABASE LINK
ouDATABASE LINKS
éDB_LINK
. Você pode encontrar os valores válidos emDATABASE_EXPORT_OBJECTS
,SCHEMA_EXPORT_OBJECTS
eTABLE_EXPORT_OBJECTS
.