USER
DSQL, PSQL
USER
VARCHAR(63)
Переменная USER
содержит имя текущего подключенного пользователя базы данных.
USER
NEW.ADDED_BY = USER;
USER
DSQL, PSQL
USER
VARCHAR(63)
Переменная USER
содержит имя текущего подключенного пользователя базы данных.
USER
NEW.ADDED_BY = USER;
CURRENT_ROLE
DSQL, PSQL
CURRENT_ROLE
VARCHAR(63)
Контекстная переменная CURRENT_ROLE
, содержащая имя роли, которая была указана при подключении к базе данных, илироль установленную с помощью оператора SET ROLE
. В случае если произошло подключение без указания роли,и роль не была указана позже с помощью оператора SET ROLE
, переменная принимает значение NONE
.
CURRENT_ROLE
всегда представляет допустимую роль или NONE
. Если пользователь подключается с несуществующей ролью,ядро молча сбрасывает её на NONE
, не возвращая ошибку.
Note
|
Контекстная переменная |
CURRENT_ROLE
SELECT CURRENT_ROLE FROM RDB$DATABASE
Note
|
Такое же значение можно будет получить и в результате выполнения запроса:
|
CURRENT_TIME
DSQL, PSQL, ESQL
CURRENT_TIME [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
Параметр | Описание |
---|---|
precision |
Точность.Значение по умолчанию 0.Не поддерживается в ESQL. |
TIME WITH TIME ZONE
Переменная CURRENT_TIME
возвращает текущее время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.По умолчанию точность равна 0.
Note
|
В блоке кода PSQL (процедура, триггер, исполняемый блок) значение |
CURRENT_TIME
SELECT CURRENT_TIME(2) FROM RDB$DATABASE;
-- результат будет (например) 23:35:33.1200 Europe/Moscow
CURRENT_TIMESTAMP
DSQL, PSQL, ESQL
CURRENT_TIMESTAMP [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
Параметр | Описание |
---|---|
precision |
Точность.Значение по умолчанию 3.Не поддерживается в ESQL. |
TIMESTAMP WITH TIME ZONE
Переменная CURRENT_TIMESTAMP
возвращает текущую дату и время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.Точность по умолчанию равна 3.
Note
|
В блоке кода PSQL (процедура, триггер, исполняемый блок) значение |
CURRENT_TIMESTAMP
SELECT CURRENT_TIMESTAMP(2) FROM RDB$DATABASE;
-- результат будет (например) 02.03.2014 23:35:33.1200 Europe/Moscow
CURRENT_TRANSACTION
DSQL, PSQL
CURRENT_TRANSACTION
BIGINT
Переменная CURRENT_TRANSACTION
содержит уникальный номер текущей транзакции.
Значение `CURRENT_TRANSACTION
хранится в странице заголовка базы данных и сбрасывается в 0 после восстановления (или создания базы). Оно увеличивается при старте новой транзакции.
CURRENT_TRANSACTION
SELECT CURRENT_TRANSACTION FROM RDB$DATABASE;
NEW.TRANS_ID = CURRENT_TRANSACTION;
CURRENT_USER
DSQL, PSQL
CURRENT_USER
VARCHAR(63)
Переменная CURRENT_USER
содержит имя текущего подключенного пользователя базы данных.
CURRENT_USER
NEW.ADDED_BY = CURRENT_USER;
DELETING
PSQL
DELETING
BOOLEAN
Контекстная переменная DELETING
доступна только в коде табличных триггеров.Используется в триггерах на несколько типов событий и показывает, что триггер сработал при выполнении операции DELETE
.
DELETING
...
IF (DELETING) THEN
BEGIN
INSERT INTO REMOVED_CARS (
ID, MAKE, MODEL, REMOVED)
VALUES (
OLD.ID, OLD.MAKE, OLD.MODEL, CURRENT_TIMESTAMP);
END
...
GDSCODE
PSQL
GDSCODE
INTEGER
В блоке обработки ошибок WHEN … DO
контекстная переменная GDSCODE
содержит числовое представление текущего кода ошибки Firebird.До версии Firebird 2.0 GDSCODE
можно было получить только с использованием конструкции WHEN GDSCODE
.Теперь эту контекстную переменную можно также использовать в блоках WHEN ANY
, WHEN SQLCODE
и WHEN EXCEPTION
при условии, что код ошибки соответствует коду ошибки Firebird.Вне обработчика ошибок GDSCODE
всегда равен 0.Вне PSQL GDSCODE
не существует вообще.
GDSCODE
...
WHEN GDSCODE GRANT_OBJ_NOTFOUND,
GDSCODE GRANT_FLD_NOTFOUND,
GDSCODE GRANT_NOPRIV,
GDSCODE GRANT_NOPRIV_ON_BASE
DO
BEGIN
EXECUTE PROCEDURE LOG_GRANT_ERROR(GDSCODE);
EXIT;
END
...
Note
|
Обратите внимание, пожалуйста: после, |