2015-11-06 4 views
0

Я хочу вызвать функцию DB1 из функции, которая находится в DB2.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; 

, а затем i exe вырезано ниже команды для проверки подключения:

SELECT dblink_connect('myconn' 
     ,'hostaddr=1.1.1.1 dbname=test user=postgres password=admin') 
Смежные вопросы