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);
Возвращает: два столбца, как и ожидалось.
Именованный не работает:
Connect:
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
Disconnect:
SELECT dblink_disconnect('myconn');
Возвращает:
ERROR: connection "myconn" not available
********** Error **********
ERROR: connection "myconn" not available
SQL state: 08003
Безымянный с _connect и _disconnect не работает:
Connect:
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
Disconnect:
SELECT dblink_disconnect();
Возвращает:
ERROR: connection not available
********** Error **********
ERROR: connection not available
SQL state: 08003