다른 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
'sourcecode' 카테고리의 다른 글
Java 프로그램에서 MariaDB에 액세스하려고 하면 암호가 올바르는데도 'access denied' 예외가 발생하는 이유는 무엇입니까? (0) | 2023.08.21 |
---|---|
공유 EntityManager에서 트랜잭션을 생성할 수 없음 - Spring 트랜잭션 또는 EJB CMT 사용 (0) | 2023.08.21 |
spring.profiles.active에 의해 설정된 여러 Spring의 환경 프로파일이 있는 경우 우선순위는 무엇입니까? (0) | 2023.08.21 |
부트스트랩 회전목마 : 자동 슬라이드 제거 (0) | 2023.08.21 |
Android;새 파일을 만들지 않고 파일이 있는지 확인 (0) | 2023.08.21 |