dblink_open
dblink_open â оÑкÑÑÐ²Ð°ÐµÑ ÐºÑÑÑÐ¾Ñ Ð² ÑдалÑнной базе даннÑÑ
СинÑакÑиÑ
dblink_open(text cursorname, text sql [, bool fail_on_error]) returns text dblink_open(text connname, text cursorname, text sql [, bool fail_on_error]) returns text
ÐпиÑание
ФÑнкÑÐ¸Ñ dblink_open() оÑкÑÑÐ²Ð°ÐµÑ ÐºÑÑÑÐ¾Ñ Ð² ÑдалÑнной базе даннÑÑ
. ÐÑкÑÑÑÑм кÑÑÑоÑом можно бÑÐ´ÐµÑ Ð¼Ð°Ð½Ð¸Ð¿ÑлиÑоваÑÑ ÑÑнкÑиÑми dblink_fetch() и dblink_close().
ÐÑгÑменÑÑ
connnameÐÐ¼Ñ Ð¸ÑполÑзÑемого подклÑÑениÑ; опÑÑÑиÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð±ÐµÐ·ÑмÑнное подклÑÑение.
cursornameÐмÑ, назнаÑаемое кÑÑÑоÑÑ.
sqlÐпеÑаÑоÑ
SELECT, коÑоÑÑй Ð²Ñ Ñ Ð¾ÑиÑе вÑполнÑÑÑ Ð² ÑдалÑнной базе даннÑÑ , напÑимеÑselect * from pg_class.fail_on_errorÐÑли Ñавен true (ÑÑо знаÑение по ÑмолÑаниÑ), в ÑлÑÑае оÑибки, вÑданной на ÑдалÑнной ÑÑоÑоне ÑоединениÑ, оÑибка Ñакже вÑдаÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñно. ÐÑли Ñавен false, ÑдалÑÐ½Ð½Ð°Ñ Ð¾Ñибка вÑдаÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñно как ÐÐÐÐЧÐÐÐÐ, и возвÑаÑаемÑм знаÑением ÑÑнкÑии бÑдеÑ
ERROR.
ÐозвÑаÑаемое знаÑение
ÐозвÑаÑÐ°ÐµÑ ÑоÑÑоÑние, OK или ERROR.
ÐÑимеÑаниÑ
Так как кÑÑÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ ÑÑÑеÑÑвоваÑÑ ÑолÑко в ÑамкаÑ
ÑÑанзакÑии, ÑÑнкÑÐ¸Ñ dblink_open наÑÐ¸Ð½Ð°ÐµÑ ÑвнÑй блок ÑÑанзакÑии (командой BEGIN) на ÑдалÑнной ÑÑоÑоне, еÑли ÑÑанзакÑÐ¸Ñ Ñам еÑÑ Ð½Ðµ оÑкÑÑÑа. ÐÑа ÑÑанзакÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ñнова закÑÑÑа пÑи ÑооÑвеÑÑÑвÑÑÑем вÑзове dblink_close. ÐамеÑÑÑе, ÑÑо еÑли Ð²Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ dblink_exec изменÑеÑе даннÑе Ð¼ÐµÐ¶Ð´Ñ Ð²Ñзовами dblink_open и dblink_close, а заÑем пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¾Ñибка, либо еÑли Ð²Ñ Ð²ÑзÑваеÑе dblink_disconnect пеÑед dblink_close, ваÑи Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ, Ñак как ÑÑанзакÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑеÑвана.
ÐÑимеÑÑ
SELECT dblink_connect('dbname=postgres options=-csearch_path=');
dblink_connect
----------------
OK
(1 row)
SELECT dblink_open('foo', 'select proname, prosrc from pg_proc');
dblink_open
-------------
OK
(1 row)