Контекстная переменная | Тип данных | Описание | Доступность |
CURRENT_CONNECTION | INTEGER | Системный идентификатор соединения, при котором выполняется настоящий запрос | Firebird 1.5 и выше, DSQL и PSQL |
CURRENT_DATE | DATE | Текущая дата по часам на сервере | Firebird 1.0 и выше, все окружения SQL |
CURRENT_ROLE | VARCHAR (31) | Имя роли, под которым соединился текущий пользователь. Возвращает пустую строку, если текущее соединение не использовало роль | Firebird 1.0 и выше, все окружения SQL |
CURRENT_TIME | TIME | Текущее время по часам на сервере, выраженное в секундах после полуночи | Firebird 1.0 и выше, все окружения SQL |
CURRENT_TIMESTAMP | TIMESTAMP | Текущая дата и время по часам на сервере в секундах | Firebird 1.0 и выше, все окружения SQL |
CURRENT_TRANSACTION | INTEGER | Системный идентификатор транзакции, в контексте которой выполняется текущий запрос | Firebird 1.5 и выше, DSQL и PSQL |
CURRENTUSER | VARCHAR( 128) | Имя пользователя, который связан сданным экземпляром клиентской библиотеки | Firebird 1.0 и выше, все окружения SQL |
ROW_COONT | INTEGER | Счетчик строк измененных, удаленных и добавленных оператором DML после завершения операции | Firebird 1.5 и выше, DSQL и PSQL |
UPDATING | BOOLEAN | Возвращает true, если выполняется оператор изменения | Firebird 1.5 и выше, только диалект триггера PSQL |
INSERTING | BOOLEAN | Возвращает true, если выполняется оператор добавления | Firebird 1.5 и выше, только диалект триггера PSQL |
DELETING | BOOLEAN | Возвращает true, если выполняется оператор удаления | Firebird 1.5 и выше, только диалект триггера PSQL |
SQLCODE | INTEGER | Возвращает SQLCODE из блока исключения WHEN. Использование см. в главе 32 | Firebird 1.5 и выше, только язык процедур PSQL |
GDSCODE | INTEGER | Возвращает GDSCODE из блока исключения WHEN. Использование см. в главе 32 | Firebird 1.5 и выше, только язык процедур PSQL |
USER | VARCHAR(128) | Имя пользователя, который связан сданным экземпляром клиентской библиотеки | Предшественники InterBase, все версии Firebird, все окружения SQL, доступные в диалекте 1 |
Временные значения
CURRENT_CONNECTION и CURRENT_TRANSACTION не имеют смысла вне текущего соединения и контекста транзакции соответственно. Сервер Firebird сохранит самые последние значения этих идентификаторов в заголовочной странице базы данных. После восстановления базы данных из резервной копии эти значения будут заново установлены в ноль.
CURRENT_TIMESTAMP записывает время сервера на момент старта операции. Для всех записей, вставляемых или обновляемых одним оператором, значение этой переменной будет одним и тем же.
Хотя CURRENT_TIME хранится на сервере как время после полуночи, ее тип TIME, а не интервал времени. Для получения интервала времени используйте TIMESTAMP при старте и завершении и вычтите время старта из времени завершения. Результатом будет интервал времени в днях.
Контекстные переменные даты/времени основаны на времени сервера, которое может отличаться от внутреннего времени на клиенте.
Примеры использования
Следующий оператор возвращает время сервера в момент, когда сервер обслуживает запрос клиента Firebird:
SELECT CURRENT_TIME AS TIME_FINISHED FROM RDB$DATABASE;