dblink_get_result
dblink_get_result â полÑÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ Ð°ÑÐ¸Ð½Ñ Ñонного запÑоÑа
СинÑакÑиÑ
dblink_get_result(text connname [, bool fail_on_error]) returns setof record
ÐпиÑание
dblink_get_result полÑÑÐ°ÐµÑ ÑезÑлÑÑаÑÑ Ð°ÑинÑ
Ñонного запÑоÑа, запÑÑенного Ñанее вÑзовом dblink_send_query. ÐÑли запÑÐ¾Ñ ÐµÑÑ Ð²ÑполнÑеÑÑÑ, dblink_get_result бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ ÐµÐ³Ð¾ завеÑÑениÑ.
ÐÑгÑменÑÑ
connnameÐÐ¼Ñ Ð¸ÑполÑзÑемого подклÑÑениÑ.
fail_on_errorÐÑли Ñавен true (ÑÑо знаÑение по ÑмолÑаниÑ), в ÑлÑÑае оÑибки, вÑданной на ÑдалÑнной ÑÑоÑоне ÑоединениÑ, оÑибка Ñакже вÑдаÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñно. ÐÑли Ñавен false, ÑдалÑÐ½Ð½Ð°Ñ Ð¾Ñибка вÑдаÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñно как ÐÐÐÐЧÐÐÐÐ, и ÑÑнкÑÐ¸Ñ Ð½Ðµ возвÑаÑÐ°ÐµÑ ÑÑÑоки.
ÐозвÑаÑаемое знаÑение
ÐÐ»Ñ Ð°ÑинÑ
Ñонного запÑоÑа (Ñо еÑÑÑ, SQL-опеÑаÑоÑа, возвÑаÑаÑÑего ÑÑÑоки) ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ ÑÑÑоки, полÑÑеннÑе в ÑезÑлÑÑаÑе запÑоÑа. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÑÑÑ ÑÑнкÑиÑ, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°ÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñй Ð½Ð°Ð±Ð¾Ñ ÑÑолбÑов, как Ñанее говоÑилоÑÑ Ð² опиÑании dblink.
ÐÐ»Ñ Ð°ÑинÑ
Ñонной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ (Ñо еÑÑÑ, SQL-опеÑаÑоÑа, не возвÑаÑаÑÑего ÑÑÑоки), ÑÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ñ Ð¾Ð´Ð½Ð¸Ð¼ ÑекÑÑовÑм ÑÑолбÑом, ÑодеÑжаÑим ÑÑÑÐ¾ÐºÑ ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ. ÐÐ»Ñ Ñакого вÑзова в пÑедложении FROM Ñак же необÑ
одимо опÑеделиÑÑ, ÑÑо ÑезÑлÑÑÐ°Ñ Ð±ÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¾Ð´Ð¸Ð½ ÑекÑÑовÑй ÑÑолбеÑ.
ÐÑимеÑаниÑ
ÐÑа ÑÑнкÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° вÑзÑваÑÑÑÑ, еÑли dblink_send_query возвÑаÑÐ°ÐµÑ 1. ÐÑ Ð½Ñжно вÑзÑваÑÑ Ð¿Ð¾ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÐ°Ð·Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑпÑавленного запÑоÑа, а заÑем еÑÑ Ñаз Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿ÑÑÑого набоÑа даннÑÑ
, пÑежде Ñем подклÑÑением можно бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑзоваÑÑÑÑ Ñнова.
Ðогда иÑполÑзÑÑÑÑÑ dblink_send_query и dblink_get_result, подÑиÑÑема dblink полÑÑÐ°ÐµÑ Ð²ÐµÑÑ Ð½Ð°Ð±Ð¾Ñ ÑдалÑннÑÑ
ÑезÑлÑÑаÑов, пÑежде Ñем пеÑедаваÑÑ ÐµÐ³Ð¾ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ñной обÑабоÑки. ÐÑли запÑÐ¾Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑок, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð¼Ð½Ð¾Ð³Ð¾ памÑÑи в локалÑном ÑеанÑе. ÐоÑÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑÑÑе оÑкÑÑÑÑ Ñакой запÑÐ¾Ñ ÐºÐ°Ðº кÑÑÑоÑ, вÑзвав dblink_open, а заÑем вÑбиÑаÑÑ ÑезÑлÑÑаÑÑ ÑдобоваÑимÑми поÑÑиÑми. ÐÑоме Ñого, можно воÑполÑзоваÑÑÑÑ Ð¿ÑоÑÑой ÑÑнкÑией dblink(), коÑоÑÐ°Ñ Ð½Ðµ допÑÑÐºÐ°ÐµÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, вÑгÑÑÐ¶Ð°Ñ Ð±Ð¾Ð»ÑÑие набоÑÑ ÑезÑлÑÑаÑов на диÑк.
ÐÑимеÑÑ
contrib_regression=# SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
dblink_connect
----------------
OK
(1 row)
contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3') AS t1;
t1
----
1
(1 row)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+----+------------
0 | a | {a0,b0,c0}
1 | b | {a1,b1,c1}
2 | c | {a2,b2,c2}
(3 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+----+----
(0 rows)
contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3; select * from foo where f1 > 6') AS t1;
t1
----
1
(1 row)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+----+------------
0 | a | {a0,b0,c0}
1 | b | {a1,b1,c1}
2 | c | {a2,b2,c2}
(3 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+----+---------------
7 | h | {a7,b7,c7}
8 | i | {a8,b8,c8}
9 | j | {a9,b9,c9}
10 | k | {a10,b10,c10}
(4 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+----+----
(0 rows)