2016-10-22 7 views
1

У меня есть вопрос о триггерах omnibus. Я использовал эти триггеры для отправки электронной почты, если есть какое-либо событие, соответствующее фильтру.SQL Trigger (IBM Tivoli Netcool Omnibus)

здесь фильтр:

begin 

for each row critical in alerts.status where critical.Severity = 5 and 
critical.Grade <= 6 and critical.LastOccurrence <= (getdate() - (60*30))   
begin 
execute send_email(critical.Node, critical.Severity, '[email protected]','Netcool Email', critical.Summary, 'WINITMSVR631'); 
update alerts.status via critical.Identifier set Grade=7; 
end; 

end 

я успешно отправлено письмо с этим вызывает выше,

я хочу добавить несколько строк, что вызывает, это будет выглядеть следующим образом:

begin 

for each row critical in alerts.status where critical.Severity = 5 and 
critical.Grade <= 6 
if critical.Situation = 'blabla1'  
{begin 
execute send_email(critical.Node, critical.Severity, '[email protected]','Netcool Email', critical.Summary, 'WINITMSVR631'); 
update alerts.status via critical.Identifier set Grade=7; 
end;} 
if critical.Situation = 'blabla2'  
{begin 
execute send_email2(critical.Node, critical.Severity, '[email protected]',  'Netcool Email', critical.Summary, 'WINITMSVR631'); 
update alerts.status via critical.Identifier set Grade=7; 
end;} 

end 

, но я всегда получаю некоторую ошибку. Честно говоря, я почти ничего не знаю о программировании SQL.

любой посоветуйте

спасибо за вашу помощь

+0

Пожалуйста, предоставьте сообщения об ошибке вы получите. –

+0

вот такая ошибка, которую я получил прошлой ночью. спасибо, сэр », сервер объектов сообщил о следующей ошибке:« Ошибка = сбой анализа в строке 12 инструкции «ЗАЯВЛЕНИЕ ЗАКЛЮЧЕНИЕ» создать или заменить триггер mail_on критические группы по умолчанию триггеры debug false enabled true priority 1 комментарий \ 'Отправить письмо о критических предупреждениях. . ', при синтаксической ошибке или около нее " –

ответ

0

первая вещь - я не уверен, что вы можете использовать «{» и «}» в коде запуска. синтаксис больше похож на if Node = 'SomeNode' then update alerts.status set Grade = 8; end if; - его если ... затем ...; end if;

я бы фиксированный код и передает SQL проверки:

begin 

for each row critical in alerts.status where critical.Severity = 5 and 
critical.Grade <= 6 
begin 
if (critical.Node = 'blabla1') then  
execute send_email(critical.Node, critical.Severity, '[email protected]','Netcool Email', critical.Summary, 'WINITMSVR631'); 
update alerts.status via critical.Identifier set Grade=7; 
end if; 
if (critical.Node = 'blabla2') then 
execute send_email(critical.Node, critical.Severity, '[email protected]','Netcool Email', critical.Summary, 'WINITMSVR631');  
update alerts.status via critical.Identifier set Grade=7; 
end if; 
end; 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^