我正在運行JAVA查詢,查詢包含DATEDIFF函數,其中參數是一個關鍵字,我們可以給yy,mm,day等等。所以我將這些關鍵字從用戶作爲參數獲取設置它在查詢中,但問題是它不會執行,它提供了一個異常作爲參數1的無效參數。如果我在CLIENT中運行相同的查詢,它會給出結果,但如果我給像'天'這樣的關鍵字引號,它會給出同樣的錯誤也在CLIENT中。所以我的問題是如何將它設置在JAVA的查詢中。目前正在做這樣DATEDIFF不工作在JAVA
for (String param : params) {
try {
namedParameterStatement.setObject(param,requiredFilterValues.get(param));
} catch (RuntimeException e) {
}
}
這是查詢我使用
SELECT CUST_KEY,Eff_Date_From,Eff_Date_To, DATEDIFF(:intervals,Eff_Date_From,Eff_Date_To) as datediffs,Active FROM CUSTOMER_DIM WHERE Active = :active
想過去值PARAMS intervals
和active
,問題是:intervals
,因爲它需要的關鍵字。
我認爲Java程序設置參數爲字符串,這就是爲什麼它的生成錯誤..我怎麼能實現這個?
您需要提供更多代碼:至少使用查詢和參數值,因爲我們不能用提供的代碼回答您的問題。對於我們所知道的,您正在嘗試將該函數分配爲參數**值**。 –
@MarkRotteveel沒有我沒有傳遞函數作爲參數值,我明確指定我的查詢包含DATEDIFF函數,它採用各種關鍵詞,該關鍵字正在傳遞作爲參數和設置在我的查詢 –