2015-11-06 81 views
0

我想從DB2中的函數調用DB1的函數。Postgres dblink

我使用下面的代碼是一樣的:

PERFORM * FROM dblink('dbname=testDB 
port=5432 user=postgres password=test', 'SELECT * FROM 
fn_insert_data('|| REC_subscription.id ||', '|| REC_subscription.code ||','|| REC_subscription.start_date ||' 
            ,'|| REC_subscription.end_date ||')'); 

但在執行DB2的功能,我得到以下錯誤:

ERROR: syntax error at or near "PERFORM" 
LINE 9:  PERFORM * FROM dblink('dbname=testDB 
      ^
********** Error ********** 

ERROR: syntax error at or near "PERFORM" 
SQL state: 42601 
Character: 237 
+0

'perform'只能在PL/pgSQL函數中使用。這不是一個常規的SQL語句。你需要使用'SELECT'。 –

+0

我只在PL/pgSQL函數中使用上面的代碼片段。但它仍然顯示錯誤。 –

回答

0

我得到了解決: 我用下面的命令爲安裝和註冊dblink

CREATE EXTENSION dblink; 

然後我exe cuted下面的命令來檢查連接:

SELECT dblink_connect('myconn' 
     ,'hostaddr=1.1.1.1 dbname=test user=postgres password=admin')