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.