jquery와 db2를 사용하고 있습니다. 나는
이DB2의 다중 매개 변수
Error:SQL:The OdbcParameterCollection only accepts non-null OdbcParameter type objects, not OleDbParameter objects.
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 (또는 다른 매개 변수)에 전달했는지 확인하고 name = vname과 같은 predicat를 사용하십시오. 이 경우 오류가 발생합니다. "IS NULL"을 사용하여 null 값이나 "NAME = COALESCE (VNAME, '')"과 같은 술어를 확인하십시오. – Alexey
오류 메시지가 표시 될 때 Java 코드도 볼 필요가 있다고 생각합니다. 그리고 우리에게 준 SQL은 실제로 실행됩니까? 그렇지 않으면 유효합니다 ... @Alexey - 불행히도, 오류 메시지는 null이 Java 측에서오고 있음을 나타냅니다. 전달 된 null을 확인하는 것이 좋은 조언이지만 나머지는 덜 도움이됩니다. 한 가지는 null을 '='로 비교하면 오류를 반환하지 않습니다. 그리고 'COALESCE()'를 사용하여 비교하면 쿼리의 의미가 바뀌므로 원하는 바가 아닐 수도 있습니다. –