RDB$GET_CONTEXT()
DSQL, PSQL
RDB$GET_CONTEXT('<namespace>', 'varname') <namespace> ::= SYSTEM | DDL_TRIGGER | USER_SESSION | USER_TRANSACTION
Параметр | Описание |
---|---|
namespace |
Пространство имён. |
varname |
Имя переменной.Зависит от регистра.Максимальная длина 80 байт. |
VARCHAR(255) CHARACTER SET NONE
Функция RDB$GET_CONTEXT
возвращает значение контекстной переменной из одного из пространства имён.
В настоящий момент существуют следующие пространства имён:
-
SYSTEM
— предоставляет доступ к системным контекстным переменным. Эти переменные доступны только для чтения; -
USER_SESSION
— предоставляет доступ к пользовательским контекстным переменным, заданным через функциюRDB$SET_CONTEXT
. Переменные существуют в течение подключения; -
USER_TRANSACTION
— предоставляет доступ к пользовательским контекстным переменным, заданным через функциюRDB$SET_CONTEXT
. Переменные существуют в течение транзакции; -
DDL_TRIGGER
— предоставляет доступ к системным контекстным переменным, доступным только во время выполнения DDL триггера. Эти переменные доступны только для чтения.
Пространства имён USER_SESSION
и USER_TRANSACTION
— изначально пусты и пользователь сам создаёт переменные и наполняет их при помощи функции RDB$SET_CONTEXT
.
Note
|
Для предотвращения DoS атак, существует ограничение на 1000 переменных в одном “пространстве имён”. |
Если запрашиваемая функцией переменная существует в указанном пространстве имён, то будет возвращено её значение в виде строки VARCHAR(255) CHARACTER SET NONE
.При обращении к несуществующей переменной в пространстве SYSTEM
возникает ошибка, если такое происходит с пространствами имён USER_SESSION
или USER_TRANSACTION
— функция возвращает NULL.