我有一个使用PostgreSQL的应用程序,但也与MSSQL上的第三方控制的数据库交互。这些数据有时会紧密地联系在一起,以至于需要做以下事情:
select thing_from_pg, thing_from_ms_crossover_function(thing_from_pg) -- etc
目前我在plperl中实现了thing_from_ms_crossover_function
。有没有办法在plpgsql中执行此操作,以便我不需要为这种情况启动plperl解释器?
另一个选择显然是从我的客户端应用程序访问这两个数据库,但这远比上面的视图语法方便。
答案 0 :(得分:1)
你有两个基本选择,而不是三个基本选项。
第一种是使用DBI-Link
,然后通过pl / pgsql或pl / perl函数访问它。 DBI-Link
的好处在于它相对较老且成熟。如果它适合你,我会从那里开始。
第二个选项是使用外部数据包装器。
第三个选项是编写一个更通用的框架,例如pl/perl
,您可以从pl/pgsql
调用。但是在那时你基本上都在考虑重新发明DBI-Link,所以我认为你最好从DBI-Link开始并根据需要进行修改。