dblink
当我使用与远程服务器的命名连接或未命名连接并断开连接时,似乎不起作用。如果我在 dblink() 中使用带有连接字符串的未命名连接,它工作正常。它似乎连接正常,但是当我尝试使用它时我的连接不可用。关于如何使用命名连接的任何想法?
未命名的 connstr 可以正常工作:
SELECT testtable.*
FROM dblink('dbname=testdb port=5432 host=192.168.1.1 user=usr password=pw'
,'SELECT * FROM testtable')
AS testtable(testtable_id integer, testtable_name text);
返回:预期的两列。
命名不起作用:
连接:
SELECT dblink_connect('myconn'
,'dbname=testdb port=5432 host=192.168.1.1 user=usr password=pw');
返回:“确定”
询问:
SELECT testtable.* FROM dblink('myconn', 'SELECT * FROM testtable')
AS testtable(testtable_id integer, testtable_name text);
回报:
ERROR: could not establish connection
DETAIL: missing "=" after "myconn" in connection info string
********** Error **********
ERROR: could not establish connection
SQL state: 08001
Detail: missing "=" after "myconn" in connection info string
断开:
SELECT dblink_disconnect('myconn');
回报:
ERROR: connection "myconn" not available
********** Error **********
ERROR: connection "myconn" not available
SQL state: 08003
未命名的 _connect 和 _disconnect 不起作用:
连接:
SELECT dblink_connect('dbname=testdb port=5432 host=192.168.1.1
user=usr password=pw');
返回:“确定”
询问:
SELECT testtable.* FROM dblink('SELECT * FROM testtable')
AS testtable(testtable_id integer, testtable_name text);
回报:
ERROR: connection not available
********** Error **********
ERROR: connection not available
SQL state: 08003
断开:
SELECT dblink_disconnect();
回报:
ERROR: connection not available
********** Error **********
ERROR: connection not available
SQL state: 08003