FirebirdSQL logo

CURRENT_ROLE

Доступно в

DSQL, PSQL

Синтаксис
CURRENT_ROLE
Тип возвращаемого результата

VARCHAR(63)

Контекстная переменная CURRENT_ROLE, содержащая имя роли, которая была указана при подключении к базе данных, илироль установленную с помощью оператора SET ROLE. В случае если произошло подключение без указания роли,и роль не была указана позже с помощью оператора SET ROLE, переменная принимает значение NONE.

CURRENT_ROLE всегда представляет допустимую роль или NONE. Если пользователь подключается с несуществующей ролью,ядро молча сбрасывает её на NONE, не возвращая ошибку.

Note

Контекстная переменная CURRENT_ROLE содержит только имя явно указанной роли (при входе в систему или с помощью SET ROLE), неявно определяемые роли (выданные оператором GRANT с использованием ключевого слова DEFAULT) не будут попадать в неё.Для того чтобы узнать, используется ли текущим пользователем неявно указанная роль, используйте системнуюфункцию RDB$ROLE_IN_USE().

Example 1. Использование переменной CURRENT_ROLE
SELECT CURRENT_ROLE FROM RDB$DATABASE
Note

Такое же значение можно будет получить и в результате выполнения запроса:

SELECT RDB$GET_CONTEXT ('SYSTEM', 'CURRENT_ROLE')
FROM RDB$DATABASE;

CURRENT_TIME

Доступно в

DSQL, PSQL, ESQL

Синтаксис
CURRENT_TIME [(<precision>)]

<precision> ::= 0 | 1 | 2 | 3
Table 1. Параметры контекстной переменной CURRENT_TIME
Параметр Описание

precision

Точность.Значение по умолчанию 0.Не поддерживается в ESQL.

Тип возвращаемого результата

TIME WITH TIME ZONE

Переменная CURRENT_TIME возвращает текущее время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.По умолчанию точность равна 0.

Note

В блоке кода PSQL (процедура, триггер, исполняемый блок) значение CURRENT_TIME не меняется по мере выполнения.При вызове вложенного кода, значение также не изменится и будет равно значению в коде самого верхнего уровня.Для определения реального времени используйте CAST('NOW' AS TIME).

Example 1. Использование переменной CURRENT_TIME
SELECT CURRENT_TIME(2) FROM RDB$DATABASE;
-- результат будет (например) 23:35:33.1200 Europe/Moscow