dblink_exec#
dblink_exec
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
Если значение true (по умолчанию, если не указано), то ошибка, возникшая на удаленной стороне соединения, также вызывает ошибку на локальной стороне. Если значение false, то удаленная ошибка сообщается локально как NOTICE, а возвращаемое значение функции устанавливается в
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)