Когда я пытаюсь создать следующее правило цепочки оракулов:
BEGIN
SYS.DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
chain_name => 'MIGRATE_EISDB_CHAIN',
condition => ':MIGRATION_STEP_1.state=''RUNNING'' AND select decode(TIME_COMPLETED, null, 0, 1) from MIGRATION_PROGRESS where MIGRATION_STEP = "MIGRATE_AEP_TO_EP" > 0',
rule_name => 'continue_migration',
action => 'START MIGRATION_STEP_2',
comments => 'continue the migration - step 2');
END;
/
Цепочка, шаги и первое правило были созданы успешно, но я получаю эту ошибку при создании второго правила с условием:
Отчет об ошибке -
ORA-25448: правило EISYSNEW1.CONTINUE_MIGRATION содержит ошибки
ORA-00936: отсутствует выражение
ORA-06512: at "SYS.DBMS_ISCHED", строка 1646
ORA-06512: at " SYS.DBMS_SCHEDULER", строка 1619
ORA-06512: строка 2
25448. 00000 - "%s %s.%s содержит ошибки."
*Причина: попытка загрузить указанное правило или выражение не удалось из-за
ошибок в правиле или выражении.
*Действие: проверьте правило или выражение и повторите операцию.
Вопрос:
Почему это происходит?? В документации Oracle сказано, что это условие должно быть законным. Что мне не хватает в выражении для этого условия?? К вашему сведению: он создается, когда я опускаю часть после «И».
condition => ':MIGRATION_STEP_1.state=''RUNNING'' AND select decode(TIME_COMPLETED, null, 0, 1) from MIGRATION_PROGRESS where MIGRATION_STEP = "MIGRATE_AEP_TO_EP" > 0',