Netcool/OMNIbus SQL 过程没有运行\啥都不做
Posted
技术标签:
【中文标题】Netcool/OMNIbus SQL 过程没有运行\\啥都不做【英文标题】:Netcool/OMNIbus SQL procedure not running\doing nothingNetcool/OMNIbus SQL 过程没有运行\什么都不做 【发布时间】:2016-07-26 12:08:00 【问题描述】:所以我有一个调用程序的工具。 工具长这样:
call Attach_test('select TTID from alerts.status where Class in (73000,8891) and to_int(TTID) > 0 and ServerSerial in ($selected_rows.Serial)',[ $selected_rows.Serial ]); flush iduc;
它应该获得 TTID(该字段只有许多选定警报之一)和选定警报的服务器序列数组。 然后将所有这些数据传输到如下所示的 SQL 过程:
declare
tempservser integer; k integer;
begin
for k = 1 to array_len(serserial) do
begin
set tempservser = serserial[k];
update alerts.status set ParentTT = parentttid, TTFlag = 2 where ServerSerial = tempservser and TTID = '' ;
end;
end
参数:
在 parentttid 字符 (11) 在 sererial 整数数组中麻烦来了——程序什么也不做。没有错误或其他东西,但所选警报没有更新。
我希望它像这样工作 - 您选择许多警报,其中只有一个具有 TTID,运行此工具,在每个其他选定的警报上设置 ParentTT = TTID。 操作系统版本。 8.1
对不起我的英语
【问题讨论】:
【参考方案1】:我想出了怎么做:
工具
call AttachSelectedToTTID([ $selected_rows.Serial ],[ $selected_rows.ParentTT ]);
flush iduc;
程序
declare
tempservser integer; k integer;n integer;partt char(15);
begin
for n = 1 to array_len(ttid) do
begin
if (ttid[n] != '' ) then
set partt = ttid[n];
end if;
end;
for k = 1 to array_len(serserial) do
begin
set tempservser = serserial[k];
update alerts.status set ParentTT = partt,TTFlag = 2 where Serial = tempservser and TTID = '';
end;
end
参数:
在 Char(15) 的 ttid 数组中
在 Integer 的串行数组中
【讨论】:
以上是关于Netcool/OMNIbus SQL 过程没有运行\啥都不做的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)