sourcecode

다른 Oracle 데이터베이스에서 테이블 쿼리

codebag 2023. 8. 21. 21:15
반응형

다른 Oracle 데이터베이스에서 테이블 쿼리

두 개의 다른 데이터베이스가 있습니다. 하나는DEVORADB내가 개발을 위해 사용하는 것, 그리고 또 다른 것은.UATORADB테스터가 테스트에 사용하는 항목입니다.UATORADB개발 중이 아닌 최신 데이터를 보유하고 있습니다.테이블을 쿼리합니다.UATORADB데이터베이스DEVORADB편지를 쓰고 있었습니다.DEVORADB이러한 방식으로 그러나 결과를 얻지 못하는 경우:

SELECT * FROM TABLE_NAME@UATDEVORADB.

오라클의 경우,

CREATE DATABASE LINK ...

예.

데이터베이스 링크를 작성하고 테스트한 후 쿼리(표시한 스타일)를 수행하여 원격 데이터베이스에서 행을 검색할 수 있습니다.

참조: http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5005.htm#SQLRF01205

따르다

참고: Oracle에서 "데이터베이스"라는 용어는 Oracle "인스턴스"와 관련된 데이터 파일 및 로그 파일을 의미합니다.두 번째 "데이터베이스"에서 데이터를 검색하려면 다른 데이터베이스에 대한 두 번째 연결이 필요합니다.Oracle은 "데이터베이스 링크"라는 기능을 제공합니다.이를 통해 한 데이터베이스 인스턴스에 대한 세션(연결)을 다른 데이터베이스 인스턴스에 연결할 수 있습니다.(이 기능이 없으면 클라이언트는 두 개의 별도 연결을 작성하고 두 데이터베이스를 별도로 쿼리해야 합니다.)

이 질문이 동일한 데이터베이스 내의 두 개의 개별 "스키마"에서 쿼리하는 것과 관련된 경우, 사용자가 두 번째 스키마의 개체에 대한 충분한 권한을 가지고 있는 한 식별자는 스키마의 이름으로 인증될 수 있습니다.

SELECT * FROM UATDEVORADB.TABLE_NAME

별도의 데이터베이스에 있는 데이터에 액세스하기 위해 데이터베이스 링크를 사용할 수 있습니다.

CREATE DATABASE LINK UADEVORADB 
  CONNECT TO user 
  IDENTIFIED BY password
  USING 'uadevoradb' ;

이렇게 하려면 Oracle 서버의 tnsnames.ora 파일 또는 Oracle names 서버에 적절한 일치 항목이 필요합니다. 그렇지 않으면 tnsnames.ora 항목 대신 다음과 같이 연결 세부 정보를 입력할 수 있습니다.

CREATE DATABASE LINK UADEVORADB
  CONNECT TO user IDENTIFIED BY password 
  USING '(DESCRIPTION=
  (ADDRESS=(PROTOCOL=TCP)(HOST=uadevorahost1)(PORT=1521))
  (CONNECT_DATA=(SERVICE_NAME=uadevoradb.domaindb)))'

데이터베이스 링크에 지정된 "사용자"가 원격 시스템에 있는 테이블의 "소유자"와 다르고 테이블을 참조하는 동의어가 없는 경우 테이블 식별자는 소유자의 인증을 받아야 합니다.

SELECT * FROM OWNER.TABLE_NAME@UADEVORADB ;

언급URL : https://stackoverflow.com/questions/28368876/query-table-from-another-oracle-database

반응형