문제

소스 DB 버전 : 11.2.0.3
대상 DB 버전 : 12.1.0.2

DBMS_DATAPPUMP를 사용하여 하나의 데이터베이스에서 다른 데이터베이스 링크를 다른 데이터베이스로 가져 오려고합니다. 코드가 위의 대상 DB에서 실행되고 데이터베이스 링크를 통해 위의 소스 DB에서 DB 링크를 가져옵니다.

과거에는 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_DATAPPUMP"의 검색 결과와 동일한 검색의 "데이터베이스 링크"가 데이터베이스 링크를 가져 오는 방법에 대한 결과 만 반환 된 결과 만 짜증났습니다. 데이터베이스 링크를 직접 가져 오는 방법은 아닙니다.

다음을 사용하여 직접 데이터베이스 링크를 가져올 수있었습니다.

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

i 즉시 실행을 사용하여 위의 명령문에서 출력을 실행하지만 더 이상 11.2.0.4에서 시작하는 유효한 옵션이 아닙니다 (Metalink Doc ID 190521.1 참조).

도움이 되었습니까?

해결책

DATABASE LINK 또는 DATABASE LINKS가 아니며 DB_LINK입니다.DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTSTABLE_EXPORT_OBJECTS에서 유효한 값을 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top