2016-12-27 77 views
0

我試圖執行以下查詢並獲取無效的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

如果您在存儲過程執行這個,試試這可能會有幫助,取出新行字符和 空間分隔參數。 或者以其他方式嘗試升級.......

+0

這是從應用程序調用的查詢,而不是存儲過程。你能解釋一下嗎?刪除新行字符並用空格分隔參數 – Sona

+0

關閉你的查詢編輯器,然後重新打開你的編輯器然後嘗試執行。 –

+0

我關閉了我的快速sql,並重新打開並在新的查詢編輯器中執行,但仍然出現相同的錯誤。 – Sona

0

如果您嘗試此查詢其更好?

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