W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
dblink_get_result — 得到一個(gè)異步查詢結(jié)果
dblink_get_result(text connname [, bool fail_on_error]) 返回 record 集合
dblink_get_result
收集之前dblink_send_query
發(fā)送的一個(gè)異步查詢的結(jié)果。如果該查詢還沒(méi)有完成,dblink_get_result
將等待直到它完成。
connname
要使用的連接名。
fail_on_error
如果為真(忽略時(shí)的默認(rèn)值),那么在連接的遠(yuǎn)端拋出的一個(gè)錯(cuò)誤也會(huì)導(dǎo)致本地拋出一個(gè)錯(cuò)誤。如果為假,遠(yuǎn)程錯(cuò)誤只在本地被報(bào)告為一個(gè) NOTICE,并且該函數(shù)不返回行。
對(duì)于一個(gè)異步查詢(也就是一個(gè)返回行的 SQL 語(yǔ)句),該函數(shù)返回查詢產(chǎn)生的行。要使用這個(gè)函數(shù),你將需要指定所期待的列集合,如前面為dblink
所討論的那樣。
對(duì)于一個(gè)異步命令(也就是一個(gè)不返回行的 SQL 語(yǔ)句),該函數(shù)返回一個(gè)只有單個(gè)文本列的單行,其中包含了該命令的狀態(tài)字符串。仍必須在調(diào)用的FROM
子句中指定結(jié)果將具有一個(gè)單一文本行。
如果dblink_send_query
返回 1,這個(gè)函數(shù)就必須被調(diào)用。對(duì)每一個(gè)已發(fā)送的查詢都必須調(diào)用一次這個(gè)函數(shù),并且在連接再次可用之前還要多調(diào)用一次來(lái)得到一個(gè)空結(jié)果集。
當(dāng)使用dblink_send_query
和dblink_get_result
時(shí),在將結(jié)果集中的任何一行返回給本地查詢處理器之前,dblink將取得整個(gè)遠(yuǎn)程查詢結(jié)果。如果該查詢返回大量的行,這可能會(huì)導(dǎo)致本地會(huì)話中短暫的內(nèi)存膨脹。最好將這樣的一個(gè)查詢用dblink_open
打開(kāi)成一個(gè)游標(biāo)并且接著每次取得數(shù)量可管理的行。也可以使用簡(jiǎn)單的
dblink()
,它會(huì)避免緩沖大型結(jié)果集到磁盤(pán)上導(dǎo)致的內(nèi)存膨脹。
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)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: