Исключение выдается, когда один параметр хранимой функции Oracle равен нулю - PullRequest
0 голосов
/ 20 июля 2011

Я хочу вызвать функцию PL / SQL, используя именованный запрос. Один из параметров вызывает у меня проблемы. В определении PL / SQL его тип - NUMBER. Вот код Java, где он установлен: q.setParameter (Test.DISTRICT_ID_PARAM,districtId); и districtId является Long.

Когда districtId не равно нулю, все в порядке, но когда оно равно нулю, это результат: org.hibernate.exception.SQLGrammarException: could not execute query

Я уверен, что с сантехникой проблем нет, поскольку запрос работает хорошо, когда districtId не равен нулю.

1 Ответ

0 голосов
/ 20 июля 2011

Я не знаком с Java или Hibernate, но в написанных мной приложениях Oracle я сталкивался с похожим поведением с нулевыми параметрами (C #) - если в Java есть концепция, вы пытались установить значение параметра в быть нулевой БД (в C # DBNull.Value)?

Если значение равно нулю, я думаю, что Oracle интерпретирует его как параметр, не передаваемый вообще.

...