Доступ к данным на Microsoft SQL Server из функции PostgreSQL

У меня есть приложение, которое использует PostgreSQL, но также взаимодействует с контролируемой сторонней базой данных на MSSQL. Данные иногда связываются друг с другом достаточно близко, поэтому становится желательно делать такие вещи, как:

select thing_from_pg, thing_from_ms_crossover_function(thing_from_pg) -- etc

В настоящее время я реализую thing_from_ms_crossover_function в плперл. Есть ли способ сделать это в plpgsql или что-то, чтобы мне не нужно было запускать интерпретатор plperl для таких случаев?

Другой вариант, очевидно, заключается в доступе к обеим базам данных из моего клиентского приложения, но это становится гораздо менее удобным, чем приведенный выше синтаксис представления.

1 ответ

Решение

У вас есть два основных варианта, а три основных.

Первый заключается в использовании DBI-Link и затем получить доступ к этому через вашу функцию pl/pgsql или pl/perl. Хорошая вещь о DBI-Link является то, что это относительно старше и зрелее. Если это работает для вас, я бы начал там.

Второй вариант - использовать сторонние обертки данных.

Третий вариант - написать более общую структуру pl/perl что вы можете позвонить с pl/pgsql, Однако в этот момент вы в основном смотрите на переизобретение DBI-Link, поэтому я думаю, что вам лучше начать с DBI-Link и модифицировать его по мере необходимости.

Другие вопросы по тегам