我使用jQuery和DB2。我收到以下錯誤執行時間
多參數在DB2
Error:SQL:The OdbcParameterCollection only accepts non-null OdbcParameter type objects, not OleDbParameter objects.
我的DB2 SQL
Create procedure myparameters(
IN vname VARCHAR(500),
IN vurl VARCHAR(1000),
IN vyear VARCHAR(10),
IN vmonth VARCHAR(10)
)
language sql
BEGIN ATOMIC
SET vname = '~p_hostname~'; -- these tild values are coming from jquery
SET vurl = '~p_url~';
SET vmonth = '~p_month~';
SET vyear = '~p_year~';
select hour as hours,tvalue as seconds from myschema.my_view
WHERE
name = vname and
url= vurl and
month = CAST(vmonth AS INT) and
year = CAST(vyear AS INT) and
VALUE_TYPE ='access Time'
order by hour;
[email protected]
如果你傳遞null值VNAME(或任何其它參數),並使用predicat如姓名= VNAME請檢查。在這種情況下,你應該得到錯誤。使用「IS NULL」檢查空值或謂詞,如「NAME = COALESCE(VNAME,'')」 – Alexey
我想我們還需要查看您的Java代碼,並給出錯誤消息。你給我們的SQL實際運行了嗎?這似乎是有效的,否則... @Alexey - 不幸的是,該錯誤信息表明空從Java端來了。雖然檢查通過的空值是很好的建議,其餘的則不太有用;一方面,比較空與「=」東西永遠不會返回一個錯誤。並且使用'COALESCE()'進行比較將改變查詢的語義,這可能不是他想要的。 –