Вход в личный кабинет
Регистрация пользователя
согласие на обработку персональных данных Политикой конфиденциальности

Личный кабинет

✖
Восстановление пароля

Укажите e-mail, на который будет выслан код восстановления пароля.

Подтверждение аккаунта

На указанный вами адрес e-mail был выслан код подтверждения аккаунта. Введите полученный код для продолжения:

Изменение пароля

Введите новый пароль два раза:


Postgres Pro
  • Компания
    • О компании
    • Руководство
    • Документы
    • Партнёры
    • Карьера
    • Контакты
  • Продукты
    • СУБД POSTGRES PRO ENTERPRISE
    • СУБД POSTGRES PRO ENTERPRISE CERTIFIED
    • СУБД POSTGRES PRO CERTIFIED
    • СУБД POSTGRES PRO STANDARD
    • Postgres Pro Enterprise Manager
    • Postgres Pro Backup Enterprise
    • Postgres Pro Shardman
    • СУБД PostgreSQL для Windows
    • План разработок
    • Совместимые решения
    • Лицензирование
  • Услуги
    • Техподдержка СУБД
    • Аудит СУБД
    • Миграция СУБД
    • Отказоустойчивость СУБД
    • Расширенная техническая поддержка
  • Клиенты
    • Кейсы
    • Отзывы
  • Образование
    • Книги
    • Курсы
      • Для DBA и разработчиков
      • Учебные центры
    • Сертификация
    • Вузам
      • Основы технологий баз данных
      • Язык SQL
    • Студентам
      • Программа стажировок
      • Конкурсы
    • Глоссарий
    • Демобаза
  • Новости
    • СМИ о нас
    • Дайджест Postgresso
    • Мероприятия
    • Технические анонсы
    • Для СМИ
  • Ресурсы
    • Документация
    • Материалы
    • How-to видео
    • Списки рассылки
    • PostgreSQL для Windows
  • RU
  • EN
  • ⋮
  • RU
  • EN
  • ⋮
Postgres Pro Shardman
17
Postgres Pro Shardman
17
Postgres Pro Shardman
17
dblink_get_result
Пред. НаверхF.4. dblink — подключение к другим базам данных Postgres ProНачало След.

dblink_get_result

dblink_get_result — получает результат асинхронного запроса

Синтаксис

dblink_get_result(text connname [, bool fail_on_error]) returns setof record

Описание

dblink_get_result получает результаты асинхронного запроса, запущенного ранее вызовом dblink_send_query. Если запрос ещё выполняется, dblink_get_result будет ждать его завершения.

Аргументы

connname

Имя используемого подключения.

fail_on_error

Если равен true (это значение по умолчанию), в случае ошибки, выданной на удалённой стороне соединения, ошибка также выдаётся локально. Если равен false, удалённая ошибка выдаётся локально как ЗАМЕЧАНИЕ, и функция не возвращает строки.

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

Для асинхронного запроса (то есть, SQL-оператора, возвращающего строки) эта функция выдаёт строки, полученные в результате запроса. Чтобы использовать эту функцию, вы должны задать ожидаемый набор столбцов, как ранее говорилось в описании dblink.

Для асинхронной команды (то есть, SQL-оператора, не возвращающего строки), эта функция возвращает одну строку с одним текстовым столбцом, содержащим строку состояния команды. Для такого вызова в предложении FROM так же необходимо определить, что результат будет содержать один текстовый столбец.

Примечания

Эта функция должна вызываться, если dblink_send_query возвращает 1. Её нужно вызывать по одному разу для каждого отправленного запроса, а затем ещё раз для получения пустого набора данных, прежде чем подключением можно будет пользоваться снова.

Когда используются dblink_send_query и dblink_get_result, подсистема dblink получает весь набор удалённых результатов, прежде чем передавать его для локальной обработки. Если запрос возвращает большое количество строк, это может занимать много памяти в локальном сеансе. Поэтому может быть лучше открыть такой запрос как курсор, вызвав dblink_open, а затем выбирать результаты удобоваримыми порциями. Кроме того, можно воспользоваться простой функцией dblink(), которая не допускает заполнения памяти, выгружая большие наборы результатов на диск.

Примеры

contrib_regression=# SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
 dblink_connect
----------------
 OK
(1 row)

contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3') AS t1;
 t1
----
  1
(1 row)

contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |     f3
----+----+------------
  0 | a  | {a0,b0,c0}
  1 | b  | {a1,b1,c1}
  2 | c  | {a2,b2,c2}
(3 rows)

contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 | f3
----+----+----
(0 rows)

contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3; select * from foo where f1 > 6') AS t1;
 t1
----
  1
(1 row)

contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |     f3
----+----+------------
  0 | a  | {a0,b0,c0}
  1 | b  | {a1,b1,c1}
  2 | c  | {a2,b2,c2}
(3 rows)

contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |      f3
----+----+---------------
  7 | h  | {a7,b7,c7}
  8 | i  | {a8,b8,c8}
  9 | j  | {a9,b9,c9}
 10 | k  | {a10,b10,c10}
(4 rows)

contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 | f3
----+----+----
(0 rows)

Пред. Наверх След.
dblink_get_notify Начало dblink_cancel_query
Есть вопросы? Напишите нам!
✖
Postgres Pro
VK
Youtube

© Postgres Pro
Правовая информация
  • Продукты
    • Postgres Pro Standard
    • Postgres Pro Certified
    • Postgres Pro Enterprise
    • Postgres Pro Enterprise Certified
    • Postgres Pro Enterprise Manager
    • Postgres Pro Shardman
    • Postgres Pro для 1С
  • Образование
    • Документация
    • Учебные курсы
    • Книги
    • Сертификация специалистов
    • Курсы для вузов
    • Обучение PostgreSQL
    • Глоссарий
  • Услуги
    • Техподдержка СУБД
    • Миграция СУБД
    • Аудит СУБД
    • Отказоустойчивость СУБД
Write Close