다음을 통해 공유


Oracle Database의 동의어에 대한 작업

Oracle 데이터베이스 어댑터를 사용하면 동의어에 대한 작업을 수행할 수 있습니다. 동의어는 데이터베이스 개체(예: 테이블, 뷰, 저장 프로시저, 함수 및 패키지)에 대한 별칭 또는 식별 이름입니다. Oracle의 동의어에 대한 자세한 내용은 을 참조하세요 https://go.microsoft.com/fwlink/?LinkId=138058.

동의어 사용의 이점

동의어는 다음 시나리오에서 유용합니다.

  • 다른 스키마 작업: 다른 스키마로 작업 중이고 스키마에서 개체에 액세스해야 하는 경우 다른 SQL 문을 사용하여 해당 개체에 액세스해야 합니다. 스키마의 개체에 대한 동의어를 만들고 SQL 문의 동의어를 사용하여 개체에 액세스할 수 있습니다. 다른 스키마의 기본 개체에 액세스해야 하는 경우 동의어의 정의를 수정하여 다른 스키마의 개체를 가리킵니다. 따라서 동의어를 기반으로 하는 애플리케이션은 SQL 문을 수정하지 않고 계속 작동합니다.

    예를 들어 테스트 및 프로덕션 환경에 대해 "테스트" 및 "Prod"라는 두 개의 동일한 스키마가 있다고 가정합니다. "테스트" 스키마에서 "Employee"이라는 테이블에 액세스하려면 SQL 문에서 또는 Employee ("테스트"가 기본 스키마인 경우)을 사용해야 Test.Employee 합니다. 프로덕션 스키마에서 "Employee" 테이블을 사용하려면 이제 SQL 문에서 또는 Employee (기본 스키마를 "Prod"로 변경)을 사용해야 Prod.Employee 합니다. 이 문제를 해결하려면 "Test.Employee" 테이블의 동의어(예: "EMP")를 만든 다음 SQL 문에서 사용할 수 있습니다. "Prod.Employee" 테이블에서 작업을 수행해야 할 때마다 "EMP" 동의어의 정의를 수정하여 "Prod.Employee" 테이블을 가리킵니다. 이렇게 하면 다른 스키마의 개체에 대한 작업을 수행하기 위해 SQL 문을 수정할 필요가 없습니다.

  • 기본 개체의 변경 내용: 동의어는 작업을 수행하는 기본 개체의 이름 또는 위치 변경 내용으로부터 격리됩니다. 기본 개체의 이름 또는 위치 변경 내용을 수용하도록 동의어 정의를 수정할 수 있습니다.

    예를 들어 저장 프로시저 중 하나에서 테이블을 사용한다고 가정해 보겠습니다. 이제 테이블 이름이 변경되거나 테이블이 다른 위치로 이동되면 저장 프로시저의 작동이 중지됩니다. 이 작업을 수행하려면 저장 프로시저에서 테이블의 동의어를 사용하고 테이블의 이름 또는 위치가 변경된 경우 동의어 정의를 업데이트할 수 있습니다.

  • 간소화되고 안전한 액세스: 분산 환경에서는 스키마 이름과 개체 이름을 사용하여 올바른 개체에 액세스해야 합니다. 또한 사용자에게 대상 개체에 대한 필수 권한이 있는지도 확인해야 합니다. 이를 간소화하기 위해 개체에 대한 정규화된 전체 경로가 있는 동의어를 만들어 개체의 간단한 이름을 할당한 다음 동의어에 적절한 권한을 부여할 수 있습니다.

어댑터에서 동의어 작업

Oracle 데이터베이스 어댑터는 다음을 위해 Oracle의 동의어를 노출합니다.

  • 테이블

  • 저장 프로시저

  • Functions

  • 패키지

    이러한 각 아티팩트의 동의어는 어댑터 서비스 추가 기능 사용, 어댑터 메타데이터 추가 마법사 및 어댑터 서비스 참조 플러그 인 추가에서 각각의 기본 아티팩트와 함께 노출됩니다. 예를 들어 스키마 아래의 테이블 노드는 스키마의 데이터베이스 테이블과 함께 테이블에 대한 모든 동의어를 표시하고 스키마 아래의 보기 노드는 스키마의 데이터베이스 뷰와 함께 보기에 대한 모든 동의어를 표시합니다.

  • 테이블 및 뷰에서 만든 동의어의 경우 기본 테이블 및 뷰와 동일한 작업이 각각 노출됩니다. 예를 들어 기본 테이블 및 뷰에 LOB 열이 포함된 경우 해당 테이블 및 뷰의 동의어도 ReadLOB 및 UpdateLOB 작업을 노출합니다.

  • 저장 프로시저, 함수 및 패키지에서 만든 동의어의 경우 동의어는 스키마의 각 기본 저장 프로시저, 함수 및 패키지와 함께 작업으로 노출됩니다.

참고

Oracle 데이터베이스 어댑터는 로컬 동의어만 지원합니다. 이는 해당 동의어만 로컬 서버의 아티팩트 대상 어댑터에서 지원됨을 의미합니다.

또한 동의어에 대한 메시지 작업은 작업이 수행되는 아티팩트 이름을 제외하고 기본 개체와 동일합니다. 예를 들어 SCOTT 스키마의 테이블에서 선택 작업에 대한 메시지 작업은 입니다 http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[TABLE_NAME]/Select. SCOTT 스키마에서 동일한 테이블의 동의어에 대해 Select 작업을 수행하는 경우 메시지 작업은 입니다 http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[SYNONYM_NAME]/Select.

어댑터의 동의어에서 작업을 호출할 때 어댑터는 Oracle 데이터베이스의 동의어를 호출하여 작업을 실행합니다. 그러나 어댑터는 동의어 정의의 기본 개체 이름을 사용하여 메타데이터를 가져옵니다.

동의어는 일반 아웃바운드 작업, 복합 작업 및 폴링에 사용할 수 있습니다.

참고

다른 개체와 마찬가지로 어댑터 서비스 추가 기능 사용 또는 어댑터 서비스 참조 플러그 인 추가에서 동의어를 검색할 수 있습니다. 그러나 패키지 내의 프로시저에 대해 수행할 수 있는 것처럼 건너뛰기 수준 노드에서 동의어 패키지 내의 프로시저를 검색할 수는 없습니다. 어댑터에서 작업을 검색하는 방법에 대한 자세한 내용은 Oracle 데이터베이스 작업에 대한 찾아보기, 검색 및 메타데이터 가져오기를 참조하세요.

참고 항목

어댑터를 사용하여 수행할 수 있는 작업은 무엇인가요?