我有這段代碼:
do $$
declare
port int;
dbname varchar;
begin
select current_database() into dbname;
select setting into port from pg_catalog.pg_settings where name = 'port';
perform format ('select dblink_connect(''toto'', ''port=%s dbname=%s'')', port, dbname);
perform dblink_disconnect('toto');
end $$;
但是當我運行它時,它說嘗試斷開它時我的“toto”連接不存在。
我嘗試了多種方法,但沒有任何效果。我認為我的 dblink_connect 有問題,不知何故它沒有創建連接。
謝謝你的幫助。
uj5u.com熱心網友回復:
您執行格式函式,獲得看起來像 SQL 查詢的文本結果,然后將其丟棄。因為這就是 PERFORM 所做的。
也許您打算執行該字串,而不是將其丟棄。但首先我看到沒有理由在這里使用動態查詢。您也可以在靜態查詢中使用“格式”。
do $$
declare
port int;
dbname varchar;
begin
select current_database() into dbname;
select setting into port from pg_catalog.pg_settings where name = 'port';
perform dblink_connect('toto', format('port=%s dbname=%s', port, dbname));
perform dblink_disconnect('toto');
end $$;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364927.html
標籤:PostgreSQL的
