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)