Информация о состоянии событий
Функция
Предоставление информации о текущем состоянии заданных событий.
Спецификация
::=
::=
::=
Общие правила
-
Максимальное число имён событий, которое можно передать функции, равно 32 (по числу бит в возвращаемом значении).
-
< Символьный литерал >
может быть UNICODE-литералом. -
Аргумент может быть задан
< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.
Возвращаемое значение
Значение целого типа INTEGER, представляющее собой битовую маску состояний указанных событий. Например, для двух событий:
-
если наступило событие1, но не наступило событие2, будет возвращено значение 1;
-
если наступило событие1 и наступило событие2, будет возвращено значение (1 | 2) = 3.
Пример
Запуск в inl файла event1.cmd приводит к созданию таблицы и двух событий на добавление записей в таблицы $$$ATTRI
и $$$SYSRL
.
После запуска файла event2.cmd должны получить следующие результаты:
-
сначала оба события не наступили, и оба вызова функции
GET_EVENTS_STATE
возвращают 0; -
затем наступило событие
ATTRI
(добавили столбец), вызовGET_EVENTS_STATE('ATTRI','SYSRL')
возвращает 1, а вызовGET_EVENTS_STATE('SYSRL','ATTRI')
возвращает 2; -
когда оба события наступили, оба вызова GET_EVENTS_STATE возвращают 3.
event1.cmd inl.exe -t -q -u SYSTEM/MANAGER8 -f eve1.sql start inl.exe -u SYSTEM/MANAGER8 -f eve2.sql start inl.exe -u SYSTEM/MANAGER8 -f eve3.sql event2.cmd inl.exe -t -q -u SYSTEM/MANAGER8 -f eve0.sql inl.exe -t -q -u SYSTEM/MANAGER8 -f eve4.sql echo result is 1: inl.exe -t -q -u SYSTEM/MANAGER8 -f eve0.sql inl.exe -t -q -u SYSTEM/MANAGER8 -f eve1.sql echo result is 3: inl.exe -t -q -u SYSTEM/MANAGER8 -f eve0.sql eve0.sql select GET_EVENTS_STATE('ATTRI','SYSRL'); select GET_EVENTS_STATE('SYSRL','ATTRI'); eve1.sql create or replace table test(i int); eve2.sql drop event ATTRI; create event ATTRI as insert on $$$ATTRI; wait event ATTRI; eve3.sql drop event SYSRL; create event SYSRL as insert on $$$SYSRL; wait event SYSRL; eve4.sql alter table test add column j int;