Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

RETRIEVE

Получает строки из запроса с помощью параллельного курсора.

Синтаксис

RETRIEVE { <count> | ALL } FROM ENDPOINT <endpoint_name>

Описание

RETRIEVE извлекает строки, используя предварительно созданный параллельный курсор (parallel retrieve cursor). Вы извлекаете строки в отдельных сеансах получения, разделяя прямые подключения к конечным точкам отдельных сегментов, которые будут предоставлять результаты для каждого сегмента. При инициировании сеанса получения необходимо указать gp_retrieve_conn=true в запросе на соединение. Поскольку сеанс получения не зависит от параллельных курсоров или соответствующих им конечных точек, можно использовать RETRIEVE с нескольких конечных точек в одном сеансе получения.

Параллельный курсор имеет соответствующую позицию, которая используется командой RETRIEVE. Позиция курсора может находиться перед первой строкой результата запроса, на любой конкретной строке результата или после последней строки результата.

При создании параллельный курсор располагается перед первой строкой. После извлечения нескольких строк курсор располагается на строке, извлеченной последней.

Если команда RETRIEVE выходит за пределы доступных строк, курсор остается в позиции после последней строки.

RETRIEVE ALL всегда оставляет параллельный курсор в позиции после последней строки.

ПРИМЕЧАНИЕ

Greengage DB не поддерживает прокручиваемые курсоры; перемещение курсора вперед возможно только с помощью команды RETRIEVE.

Выводимая информация

В случае успешного завершения команда RETRIEVE возвращает список полученных строк (возможно, пустой) и количество полученных строк (возможно, равное нулю).

Параметры

Параметр Описание

count

Положительное целое число, указывающее, сколько строк требуется извлечь

ALL

Получить все строки

endpoint_name

Конечная точка, из которой необходимо извлечь строки

Примечания

Используйте DECLARE …​ PARALLEL RETRIEVE CURSOR для определения параллельного курсора.

Параллельные курсоры не поддерживают операции FETCH или MOVE.

Примеры

Начните транзакцию:

BEGIN;

Объявите параллельный курсор:

DECLARE mycursor PARALLEL RETRIEVE CURSOR FOR SELECT * FROM films;

Получите сведения о конечных точках курсора:

SELECT * FROM gp_endpoints
WHERE cursorname = 'mycursor';

Получите имя хоста, порт, токен аутентификации и имя для каждой конечной точки.

В другом окне терминала инициируйте сеанс получения данных, используя имя хоста, порт и токен аутентификации, полученные в предыдущем запросе. Например:

$ PGPASSWORD=d3825fc07e56bee5fcd2b1d0b600c85e PGOPTIONS='-c gp_retrieve_conn=true' psql -d testdb -h sdw3 -p 6001

Получите все строки из конечной точки (например, из конечной точки с именем prc10000001100000005):

RETRIEVE ALL FROM ENDPOINT prc10000001100000005;

Завершите сеанс получения данных.

Вернитесь в исходную сессию, закройте курсор и завершите транзакцию:

CLOSE mycursor;
COMMIT;

Совместимость

RETRIEVE является расширением Greengage DB. Стандарт SQL не предусматривает возможности использования параллельных курсоров.

См. также