无效的SQL语法CLI0118E

问题描述:

我试图执行以下查询并获取无效的SQL语法错误 。 [IBM] [CLI驱动程序] CLI0118E无效的SQL语法。 SQLSTATE = 37000(37000,-99999)。这与驾驶升级有什么关系?前段时间它工作得很好。请指教。提前致谢。无效的SQL语法CLI0118E

select a.name_task as nameTask, a.cd_sts as cdSts, a.desc_err_msg as 
       statusDesc 
      from task_log a,(
       select id_bus_procss, name_task , id_run, 
      max(dt_lst_updt) as dt_lst_updt from task_log 
       where id_run = '1' 
       and id_bus_procss = '14' 
       and name_task in ({0}) 
       and dt_lst_updt >= (
     select dt_evnt_sts from 
          sf_evntflow_sts 
         where id_run = '1' and 
        id_evntflow ='15' 

        and cd_evnt_sts in (''CLN'',''RTY'') 
         ) 
       group by id_bus_procss, name_task, id_run) 
       X 
      where a.dt_lst_updt = X.dt_lst_updt 

如果您在存储过程执行这个,试试这可能会有帮助,取出新行字符和 空间分隔参数。 或者以其他方式尝试升级.......

+0

这是从应用程序调用的查询,而不是存储过程。你能解释一下吗?删除新行字符并用空格分隔参数 – Sona

+0

关闭你的查询编辑器,然后重新打开你的编辑器然后尝试执行。 –

+0

我关闭了我的快速sql,并重新打开并在新的查询编辑器中执行,但仍然出现相同的错误。 – Sona

如果您尝试此查询其更好?

select a.name_task as nameTask, a.cd_sts as cdSts, a.desc_err_msg as statusDesc 
from task_log a, 
(select b.id_bus_procss, b.name_task , b.id_run, max(b.dt_lst_updt) as dt_lst_updt 
    from task_log b inner join sf_evntflow_sts c on b.id_run=c.id_run and c.id_evntflow ='15' 
    and c.cd_evnt_sts in (''CLN'',''RTY'') and b.dt_lst_updt >=c.dt_evnt_sts 
    where b.id_run = '1' and b.id_bus_procss = '14' and b.name_task in ({0}) 
    group by b.id_bus_procss, b.name_task, b.id_run 
) as X 
where a.dt_lst_updt = X.dt_lst_updt 
+0

上述查询有什么不对吗?直到几天前它工作正常。 – Sona

+0

你的子选择和dt_lst_updt> =(子选择)必须返回一行,我认为现在不适用。 – Esperento57