【问题标题】:SQL Trigger (IBM Tivoli Netcool Omnibus)SQL 触发器(IBM Tivoli Netcool Omnibus)
【发布时间】:2016-10-22 10:11:02
【问题描述】:

我有一个关于综合触发器的问题。如果有任何事件与过滤器匹配,我使用此触发器发送电子邮件。

这里是过滤器:

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, 'test2@npp.local','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, 'test2@npp.local','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, 'test2@npp.local',        'Netcool Email',  critical.Summary, 'WINITMSVR631');
update alerts.status via critical.Identifier set Grade=7;
end;}

end

但我总是会遇到一些错误。老实说,我几乎不知道 sql 编程。

任何建议

感谢您的帮助

【问题讨论】:

  • 请提供您收到的错误信息。
  • 这是我昨晚遇到的错误。谢谢先生“对象服务器报告了以下错误:'错误=在语句'CHECK STATEMENT'的第12行解析失败'创建或替换触发器mail_on关键组默认触发器调试错误启用真实优先级1评论\'发送有关严重警报的电子邮件.. .',位于或接近“语法错误”“

标签: mysql sql triggers tivoli gitlab-omnibus


【解决方案1】:

第一件事 - 我不确定您是否可以在触发代码中使用“{”和“}”。 语法更像if Node = 'SomeNode' then update alerts.status set Grade = 8; end if; - 所以它的 if ... then ...; 如果结束;

我已经修复了你的代码,它通过了 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, 'test2@npp.local','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, 'test2@npp.local','Netcool Email',  critical.Summary, 'WINITMSVR631');      
update alerts.status via critical.Identifier set Grade=7;
end if;
end;
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多