USER
DSQL, PSQL
USER
VARCHAR(63)
Переменная USER содержит имя текущего подключенного пользователя базы данных.
USERNEW.ADDED_BY = USER;
USERDSQL, PSQL
USER
VARCHAR(63)
Переменная USER содержит имя текущего подключенного пользователя базы данных.
USERNEW.ADDED_BY = USER;
CURRENT_ROLEDSQL, PSQL
CURRENT_ROLE
VARCHAR(63)
Контекстная переменная CURRENT_ROLE, содержащая имя роли, которая была указана при подключении к базе данных, илироль установленную с помощью оператора SET ROLE. В случае если произошло подключение без указания роли,и роль не была указана позже с помощью оператора SET ROLE, переменная принимает значение NONE.
CURRENT_ROLE всегда представляет допустимую роль или NONE. Если пользователь подключается с несуществующей ролью,ядро молча сбрасывает её на NONE, не возвращая ошибку.
|
Note
|
Контекстная переменная |
CURRENT_ROLESELECT CURRENT_ROLE FROM RDB$DATABASE
|
Note
|
Такое же значение можно будет получить и в результате выполнения запроса:
|
CURRENT_TIMEDSQL, PSQL, ESQL
CURRENT_TIME [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
| Параметр | Описание |
|---|---|
precision |
Точность.Значение по умолчанию 0.Не поддерживается в ESQL. |
TIME WITH TIME ZONE
Переменная CURRENT_TIME возвращает текущее время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.По умолчанию точность равна 0.
|
Note
|
В блоке кода PSQL (процедура, триггер, исполняемый блок) значение |
CURRENT_TIMESELECT CURRENT_TIME(2) FROM RDB$DATABASE;
-- результат будет (например) 23:35:33.1200 Europe/Moscow
CURRENT_TIMESTAMPDSQL, PSQL, ESQL
CURRENT_TIMESTAMP [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
| Параметр | Описание |
|---|---|
precision |
Точность.Значение по умолчанию 3.Не поддерживается в ESQL. |
TIMESTAMP WITH TIME ZONE
Переменная CURRENT_TIMESTAMP возвращает текущую дату и время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.Точность по умолчанию равна 3.
|
Note
|
В блоке кода PSQL (процедура, триггер, исполняемый блок) значение |
CURRENT_TIMESTAMPSELECT CURRENT_TIMESTAMP(2) FROM RDB$DATABASE;
-- результат будет (например) 02.03.2014 23:35:33.1200 Europe/Moscow
CURRENT_TRANSACTIONDSQL, PSQL
CURRENT_TRANSACTION
BIGINT
Переменная CURRENT_TRANSACTION содержит уникальный номер текущей транзакции.
Значение `CURRENT_TRANSACTION хранится в странице заголовка базы данных и сбрасывается в 0 после восстановления (или создания базы). Оно увеличивается при старте новой транзакции.
CURRENT_TRANSACTIONSELECT CURRENT_TRANSACTION FROM RDB$DATABASE;
NEW.TRANS_ID = CURRENT_TRANSACTION;
CURRENT_USERDSQL, PSQL
CURRENT_USER
VARCHAR(63)
Переменная CURRENT_USER содержит имя текущего подключенного пользователя базы данных.
CURRENT_USERNEW.ADDED_BY = CURRENT_USER;
DELETINGPSQL
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
...
GDSCODEPSQL
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
|
Обратите внимание, пожалуйста: после, |