Skip to main content
Ctrl+K

Tantor BE 16.8 Документация

EN RU

Оглавление:

  • Введение
    • 1. Что такое Tantor BE?
    • 2. История PostgreSQL вкратце
    • 3. Какие различия между Tantor BE 16 и PostgreSQL 16
    • 4. Соглашения
    • 5. Отправка сообщений об ошибках
  • Часть I. Руководство
    • Глава 1. Краткий обзор
    • Глава 2. Язык SQL
    • Глава 3. Расширенные возможности
  • Часть II. Язык SQL
    • Глава 4. SQL Синтаксис
    • Глава 5. Определение данных
    • Глава 6. Операции с данными
    • Глава 7. Запросы
    • Глава 8. Типы данных
    • Глава 9. Функции и операторы
    • Глава 10. Преобразование типов
    • Глава 11. Индексы
    • Глава 12. Полнотекстовый поиск
    • Глава 13. Контроль параллельности
    • Глава 14. Советы по производительности
    • Глава 15. Параллельный запрос
  • Часть III. Администрирование сервера
    • Глава 16. Установка из бинарных файлов
    • Глава 17. Настройка и работа сервера
    • Глава 18. Конфигурация сервера
    • Глава 19. Аутентификация клиента
    • Глава 20. Роли базы данных
    • Глава 21. Управление базами данных
    • Глава 22. Локализация
    • Глава 23. Регулярные задачи по обслуживанию базы данных
    • Глава 24. Резервное копирование и восстановление
    • Глава 25. Высокая доступность, балансировка нагрузки и репликация
    • Глава 26. Мониторинг активности базы данных
    • Глава 27. Мониторинг использования диска
    • Глава 28. Надежность и журнал предварительной записи
    • Глава 29. Логическая репликация
    • Глава 30. Компиляция в режиме Just-In-Time (JIT)
  • Часть IV. Клиентские интерфейсы
    • Глава 31. libpq — C Библиотека
    • Глава 32. Большие объекты
    • Глава 33. ECPG — Встроенный SQL в C
    • Глава 34. Информационная схема
  • Часть V. Программирование сервера
    • Глава 35. Расширение SQL
    • Глава 36. Триггеры
    • Глава 37. Триггеры событий
    • Глава 38. Система правил
    • Глава 39. Процедурные языки
    • Глава 40. PL/pgSQL — SQL Процедурный Язык
    • Глава 41. PL/Tcl — Tcl Процедурный Язык
    • Глава 42. PL/Perl — Perl Процедурный Язык
    • Глава 43. PL/Python — Язык программирования Python для процедурного программирования
    • Глава 44. Интерфейс программирования сервера
    • Глава 45. Фоновые рабочие процессы
    • Глава 46. Логическое декодирование
    • Глава 47. Отслеживание прогресса репликации
    • Глава 48. Модули архивации
  • Часть VI. Справка
    • SQL Команды
    • Приложения клиента PostgreSQL
    • Приложения сервера PostgreSQL
  • Часть VII. Внутреннее устройство
    • Глава 49. Обзор внутреннего устройства PostgreSQL
    • Глава 50. Системные каталоги
    • Глава 51. Системные представления
    • Глава 52. Протокол клиент/сервер
    • Глава 53. Соглашения по кодированию PostgreSQL
    • Глава 54. Поддержка родного языка
    • Глава 55. Написание обработчика процедурного языка
    • Глава 56. Написание обертки внешних данных
    • Глава 57. Написание метода выборки таблицы
    • Глава 58. Написание пользовательского поставщика сканирования
    • Глава 59. Генетический оптимизатор запросов
    • Глава 60. Определение интерфейса метода доступа к таблице
    • Глава 61. Определение интерфейса метода доступа к индексу
    • Глава 62. Общие записи WAL
    • Глава 63. Пользовательские менеджеры ресурсов WAL
    • Глава 64. Индексы B-дерева
    • Глава 65. Индексы GiST
    • Глава 66. Индексы SP-GiST
    • Глава 67. Индексы GIN
    • Глава 68. Индексы BRIN
    • Глава 69. Хеш-индексы
    • Глава 70. Физическое хранение базы данных
    • Глава 71. Обработка транзакций
    • Глава 72. Объявления и начальное содержимое системного каталога
    • Глава 73. Как планировщик использует статистику
    • Глава 74. Формат резервной копии манифеста
  • Часть VIII. Приложения
    • Предметный указатель A. Коды ошибок Tantor BE
    • Предметный указатель B. Поддержка даты/времени
    • Предметный указатель C. SQL Ключевые слова
    • Предметный указатель D. Соответствие SQL
    • Предметный указатель E. Заметки к релизу
    • Предметный указатель F. Дополнительные поставляемые модули и расширения
    • Предметный указатель G. Дополнительные поставляемые программы
    • Предметный указатель H. Дополнительные внешние модули
    • Предметный указатель I. Внешние проекты
    • Предметный указатель J. Ограничения Tantor BE
    • Предметный указатель K. Сокращения
    • Предметный указатель L. Глоссарий
    • Предметный указатель M. Поддержка цвета
    • Предметный указатель N. Устаревшие или переименованные функции
  • Библиография
  • Предметный указатель

dblink

dblink#

dblink
dblink
Назад НаверхF.13. dblink — подключение к другим базам данных PostgreSQLНачало Далее

dblink

dblink — выполняет запрос в удаленной базе данных

Синтаксис

dblink(text connname, text sql [, bool fail_on_error]) returns setof record
dblink(text connstr, text sql [, bool fail_on_error]) returns setof record
dblink(text sql [, bool fail_on_error]) returns setof record

Описание

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

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

Аргументы

connname

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

connstr

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

sql

SQL-запрос, который нужно выполнить в удаленной базе данных, например select * from foo.

fail_on_error

Если значение true (по умолчанию, если не указано), то ошибка, возникшая на удаленной стороне соединения, также вызывает ошибку на локальной стороне. Если значение false, то удаленная ошибка сообщается локально как NOTICE, и функция не возвращает ни одной строки.

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

Функция возвращает строку(и), созданную запросом. Поскольку dblink может использоваться с любым запросом, он объявлен как возвращающий record, а не указывающий какой-либо конкретный набор столбцов. Это означает, что вы должны указать ожидаемый набор столбцов в вызывающем запросе - в противном случае Tantor BE не будет знать, что ожидать. Вот пример:

SELECT *
    FROM dblink('dbname=mydb options=-csearch_path=',
                'select proname, prosrc from pg_proc')
      AS t1(proname name, prosrc text)
    WHERE proname LIKE 'bytea%';

Часть “alias” предложения FROM должна указывать имена столбцов и типы, которые функция вернет. (Указание имен столбцов в псевдониме на самом деле является стандартным синтаксисом SQL, но указание типов столбцов является расширением Tantor BE). Это позволяет системе понять, что должно быть развернуто вместо * и на что ссылается proname в предложении WHERE, до попытки выполнить функцию. Во время выполнения будет сгенерирована ошибка, если фактический результат запроса из удаленной базы данных не имеет того же количества столбцов, что и в предложении FROM. Однако имена столбцов не обязательно должны совпадать, и dblink не настаивает на точном соответствии типов. Он будет успешным, если возвращаемые строки данных являются допустимым вводом для типа столбца, объявленного в предложении FROM.

Примечания

Удобный способ использования dblink с предопределенными запросами - создание представления. Это позволяет информацию о типе столбца замаскировать в представлении, вместо того, чтобы каждый раз указывать ее в каждом запросе. Например,

CREATE VIEW myremote_pg_proc AS
  SELECT *
    FROM dblink('dbname=postgres options=-csearch_path=',
                'select proname, prosrc from pg_proc')
    AS t1(proname name, prosrc text);

SELECT * FROM myremote_pg_proc WHERE proname LIKE 'bytea%';

Примеры

SELECT * FROM dblink('dbname=postgres options=-csearch_path=',
                     'select proname, prosrc from pg_proc')
  AS t1(proname name, prosrc text) WHERE proname LIKE 'bytea%';
  proname   |   prosrc
------------+------------
 byteacat   | byteacat
 byteaeq    | byteaeq
 bytealt    | bytealt
 byteale    | byteale
 byteagt    | byteagt
 byteage    | byteage
 byteane    | byteane
 byteacmp   | byteacmp
 bytealike  | bytealike
 byteanlike | byteanlike
 byteain    | byteain
 byteaout   | byteaout
(12 rows)

SELECT dblink_connect('dbname=postgres options=-csearch_path=');
 dblink_connect
----------------
 OK
(1 row)

SELECT * FROM dblink('select proname, prosrc from pg_proc')
  AS t1(proname name, prosrc text) WHERE proname LIKE 'bytea%';
  proname   |   prosrc
------------+------------
 byteacat   | byteacat
 byteaeq    | byteaeq
 bytealt    | bytealt
 byteale    | byteale
 byteagt    | byteagt
 byteage    | byteage
 byteane    | byteane
 byteacmp   | byteacmp
 bytealike  | bytealike
 byteanlike | byteanlike
 byteain    | byteain
 byteaout   | byteaout
(12 rows)

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

SELECT * FROM dblink('myconn', 'select proname, prosrc from pg_proc')
  AS t1(proname name, prosrc text) WHERE proname LIKE 'bytea%';
  proname   |   prosrc
------------+------------
 bytearecv  | bytearecv
 byteasend  | byteasend
 byteale    | byteale
 byteagt    | byteagt
 byteage    | byteage
 byteane    | byteane
 byteacmp   | byteacmp
 bytealike  | bytealike
 byteanlike | byteanlike
 byteacat   | byteacat
 byteaeq    | byteaeq
 bytealt    | bytealt
 byteain    | byteain
 byteaout   | byteaout
(14 rows)

Назад Наверх Далее
dblink_disconnect Начало dblink_exec
Коммерческое использование возможно только с письменного разрешения компании ОOO “Лаборатории Тантор”
© ООО "Лаборатории Тантор"
  • Положение о технической поддержке
  • Политика обработки файлов сookie
  • Пользовательское соглашение сайта
Продукты
  • СУБД Tantor
  • Платформа Tantor
  • Документация
Контакты
  • +7 495 369-48-16
  • info@tantorlabs.ru
16.8.1 - 8e8befb1 - 2025-04-10 15:35:32