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);
戻り値: 予想どおり 2 列。
名前付きが機能しない:
接続:
SELECT dblink_connect('myconn'
,'dbname=testdb port=5432 host=192.168.1.1 user=usr password=pw');
戻り値: 「OK」
クエリ:
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');
戻り値: 「OK」
クエリ:
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