2015-05-11 92 views
0

我有一個input.csv文件,其中有字段「id」。 我需要用下面的邏輯做一個數據庫查詢。pentaho數據庫連接錯誤以匹配輸入數據

我需要搜索字段「supp_text」中是否存在「id」並提取字段「loc_id」。

例如, id = 12345. 並且在我的supp_text中,我具有值「存在的值是12345」。

我正在使用「數據庫連接」功能來執行此操作。 即

*select loc_id from SGTABLE where supp_text like '%?%';* 

and, i am passing "id" as a parameter. 

我跑步時出現以下錯誤。

無法從現場獲得的信息 [從SGTABLE選擇LOC_ID WHERE SUPP_TEXT LIKE '%%?']」 違規行:[ID字符串(5)]

所有輸入都是字符串,而表格字段是「VARCHAR」。 。

我與「數據庫查詢選項嘗試過,但它沒有一個選項,以匹配字符串內的子字符串。

請幫助。

+0

你檢查「替換變量」嗎? – Abercrombieande

回答

1

的JDBC驅動程序沒有替換字符串中的參數。你必須首先使通配符字符串並通過整個事情作爲參數,這裏是一個快速變換我扔在一起,不只是說:

enter image description here

注意的是,在Database Join步SQL沒有引號。另請注意,除非正確使用,否則步驟可能會成爲性能殺手。然而,如果要使用很多不同的通配符值(不像在我的變換中),這看起來是一個合理的使用。

+0

但是,如何將輸入字段「ID」傳遞給「生成行」? – tester

+0

我假設在你的情況下,你會使用'文本文件輸入'或'CSV文件輸入'步驟而不是'生成行'。還請注意,如果您需要處理不在表格中的ID,請單擊「外部連接?」。複選框並在後續步驟中處理結果爲空。 –

+0

我試圖用同樣的方法爲一個SQL語句,如 從STGTABLE選擇loc_id其中supp_text在? 但它不工作。 我們該如何解決這個問題? – tester