Информация о состоянии событий (GET_EVENTS_STATE)
Функция
Предоставление информации о текущем состоянии заданных событий.
Спецификация
::=::=::=Общие правила
-
Максимальное число имён событий, которое можно передать функции, равно
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;