Перейти к основному содержимому

dblink_exec

примечание

Эта страница переведена при помощи нейросети GigaChat.

dblink_exec – выполняет команду в удаленной базе данных.

Синтаксис

dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
dblink_exec(text sql [, bool fail_on_error]) returns text

Описание

dblink_exec выполняет команду (т.е. любое выражение SQL, которое не возвращает строки) в удаленной базе данных.

Когда передаются два аргумента text, первый из них сначала ищется как имя постоянного соединения. Если найдено, команда выполняется на этом соединении. Если не найдено, первый аргумент обрабатывается как строка информации о подключении для dblink_connect, и указанное соединение устанавливается только на время выполнения этой команды.

Аргументы

connname

: Имя соединения для использования, опустите этот параметр, чтобы использовать неподписанное соединение.

connstr

: Строка информации о соединении, описанная ранее для dblink_connect.

sql

: Команда SQL, которая будет выполняться в удаленной базе данных, например insert into foo values(0, 'a', '{"a0","b0","c0"}').

fail_on_error

: Если истинно (по умолчанию, когда опущено), то ошибка, возникающая на удаленном конце соединения, вызывает ошибку и локально. Если ложно, удаленная ошибка сообщается локально как УВЕДОМЛЕНИЕ, а возвращаемое значение функции устанавливается на ERROR.

Возвращаемое значение

Возвращает статус, либо строку состояния команды, либо ERROR.

Примеры

SELECT dblink_connect('dbname=dblink_test_standby');
dblink_connect
----------------
OK
(1 row)

SELECT dblink_exec('insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
dblink_exec
-----------------
INSERT 943366 1
(1 row)

SELECT dblink_connect('myconn', 'dbname=regression');
dblink_connect
----------------
OK
(1 row)

SELECT dblink_exec('myconn', 'insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
dblink_exec
------------------
INSERT 6432584 1
(1 row)

SELECT dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
NOTICE: sql error
DETAIL: ERROR: null value in column "relnamespace" violates not-null constraint

dblink_exec
-------------
ERROR
(1 row)