Как мы знаем, PostgreSQL имеет refcursors
.Я понимаю их как ссылку на курсор, т. Е. Если
DECLARE
_var refcursor;
, чем он может хранить имя для портала:
_var = 'cursor_name_1';
Мы можем использовать его и изменить имя позже:
_var = 'cursor_name_2'; --now same variable will reference to another portal
Мы можем извлечь из переменной refcursor:
FETCH ALL FROM _var;
или использовать имя портала:
FETCH ALL FROM "cursor_name_1"; --double-quoted
Вопросы:
Q1. Почему я не могу написать
FETCH ALL FROM 'cursor_name_1'; --string literal (single-quoted)
, но я могу использовать:
_var = 'cursor_name_1'
Q2. Какой тип предложения PostgreSQL ожидает в FETCH FROM
?
Q3. Что означает имя портала в двойных кавычках "cursor_name_1"
, если оно может использоваться в FETCH FROM
, но не может использоваться в назначении?