2013-01-22 9 views
0

PostgreSQL을 사용하는 응용 프로그램이 있지만 MSSQL에서 타사 제어 데이터베이스와 상호 작용합니다. 현재 내가 plperl에서 thing_from_ms_crossover_function을 구현PostgreSQL 함수에서 Microsoft SQL Server에 대한 데이터 액세스

select thing_from_pg, thing_from_ms_crossover_function(thing_from_pg) -- etc 

: 데이터는 때때로 같은 일을하는 것이 바람직가되도록 가깝게 충분히 서로 연결되어있다. plpgsql 또는 이와 같은 방법으로이 문제를 해결할 수 있습니까? 그렇다면 이러한 경우에 plperl 인터프리터를 시작할 필요가 없습니까?

다른 옵션은 내 클라이언트 응용 프로그램에서 두 데이터베이스에 모두 액세스하는 것이 분명하지만 위의보기 구문보다 훨씬 편리합니다.

+0

dblink 모듈을 보셨습니까? http://www.postgresql.org/docs/current/static/dblink.html –

+0

유망하다고 생각되었지만 다른 PostgreSQL 데이터베이스에 대한 연결 만 지원합니다. – Kev

+1

아 맞아. 나는 항상 그것을 잊는다. 당신이 모험이라면 외국 데이터 래퍼 (odbc_fdw 또는 jdbc_fdw)를 사용해 볼 수 있습니다. http://wiki.postgresql.org/wiki/Foreign_data_wrappers –

답변

1

두 가지 기본 옵션이 있습니다. 세 가지 기본적인 옵션이 있습니다.

첫 번째는 DBI-Link을 사용한 다음 pl/pgsql 또는 pl/perl 함수를 통해 액세스하는 것입니다. DBI-Link에 대한 좋은 점은 비교적 오래되고 성숙하다는 것입니다. 그것이 당신을 위해 작동한다면 나는 거기에서 시작할 것입니다.

두 번째 옵션은 외부 데이터 래퍼를 사용하는 것입니다.

세 번째 옵션은 pl/perl과 같은 더 일반적인 프레임 워크를 작성하여 pl/pgsql에서 호출 할 수 있습니다. 그러나 그 시점에서 기본적으로 DBI 링크를 다시 발명하고자합니다. 따라서 DBI 링크로 시작하여 필요에 따라 수정하는 것이 더 바람직하다고 생각합니다.