2013-01-22 3 views
1

나는 두 개의 데이터베이스 서버를 가지고 있는데, 하나는 mysql이고 다른 하나는 db2이다. 두 데이터베이스가 다른 컴퓨터에서 실행되고있다. 나는 두 데이터베이스의 테이블에서 레코드를 가져오고 싶다. 하지만 문제는 내가 연결된 서버를 만드는 방법에 대한 모든 예제를 찾을 수 없다는 것입니다 (내가 찾을 수있는 SSMS는 SQL Server Mannagement Studio를 사용하여 연결된 서버를 만들 수 있습니다.)하지만 내 경우는 mysql과 db2이고 링크 된 서버 중 하나에/그 반대.MySQL과 연결된 서버 구성

어떻게하면 도움이되는지 알려주세요.

미리 감사드립니다.

답변

1

DB2에는 DB2에 외부 자원을 표시 할 수있는 연합 기능 (정보 통합의 일부)이라는 기능이 있습니다 (랩퍼 및 별 *). DB2에서 이들 외부 자원을 조회 할 수 있으며 다른 소스 (다른 DB2 데이터베이스, Informix | MSSQL 서버 | Oracle | MySQL 데이터베이스, 플랫 파일 등)간에 조인 할 수 있습니다. 외부 자원을 조회하기 위해이 기능은 특별 허가. 대신, 다른 DB2 또는 informix 데이터베이스를 조회하려는 경우이 기능은 무료로 포함되어 있기 때문에 추가 라이센스가 필요하지 않습니다 (IBM 데이터베이스).

주문 손에서 테이블 함수라는 옵션이 있습니다. 이 함수는 호출 될 때 테이블을 반환 한 다음 반환 된 데이터를 다른 테이블과 조인 할 수 있습니다. 이 함수는 SQL PL (IBM 프로 시저 언어), C 또는 Java로 개발할 수 있습니다.

이 두 번째 옵션을 사용하면 Java에서 테이블 함수를 작성한 다음 MySQL 테이블을 쿼리 한 다음 DB2에 데이터를 리턴 할 수 있습니다. Twitter에서 '주제'를 쿼리하고 DB2에 데이터를 반환하는 방법에 대한 예제를 작성했습니다. 거의 비슷하게해야하지만 트위터를 쿼리하는 대신 다른 데이터베이스를 구성해야합니다. http://angocadb2.blogspot.fr/2012/02/accediendo-tweeter-desde-db2-table.html

0

@AngocA

긴 검색 후 나는 위의 자기 게시에 대한 답을 생각해 내고 다른 게시자가 다른 두 데이터베이스에서 데이터를 가져와야하는 시나리오의 조합이있는 경우 다른 사용자에게 도움이되므로 게시 할 생각입니다. 서버가 r 원격/로컬 및 연결된 서버 개념에 실패 할 때.

우리는 우리가 다음 드라이버를로드 연결 같은 같은 오래된 JDBC를 얻기를 위해 간단한 방식으로 우리의 자바 코드에서 사용할 수있는 유니티 JDBC로 불리는 타사 항아리를 사용할 수 있습니다.

1) thisClass.forName ("unity.jdbc.UnityDriver")와 같은 부하 구동부; 2) 다음과 같이 연결하십시오. DriverManager.getConnection (jdbc : unity : //test/xspec/mysqldb2.xml); 3) 취득 레코드 (DDL/DML) 4) 닫기 연결

우리가 actualy의 원하는 데이터 소스의 정의를 가지고있는 XML 기반의 파일을로드 할 우리의 코드에이 JDBC를 사용하여 유니티 JDBC http://www.unityjdbc.com/

를 방문 할 수 있습니다

한 우리의 요구 사항.

일단 모든 것이 설정되면 다른 두 원격 데이터베이스의 두 테이블에서 쉽게 쿼리를 구성 할 수 있습니다. 구문 : dbname.tablename.fieldname

Addingly 우리는 외부 실제 연결을 종료 한 후 생성 된 내부 접속을 폐쇄하는 추가적인 XML 구성을 처리 할 필요가없는.

모든 문제는 되돌리기 되돌리기.