0
我想用命名查询调用PL/SQL函数。 其中一个参数会导致我出现问题。在PL/SQL定义中,它的类型是NUMBER。 下面是它设置的Java代码: q.setParameter (Test.DISTRICT_ID_PARAM,districtId);
和districtId
是Long
。当Oracle存储函数的一个参数为空时抛出异常
当districtId
不为空,一切正常,但是当它是零,这是结果: org.hibernate.exception.SQLGrammarException: could not execute query
我敢肯定有各式各样的管道没有问题,因为查询效果很好,当districtId
不为空。
DB函数接受另外3个VARCHAR2类型的参数。我将它们设置为与前一个相同,即使它们为空,一切正常。我试图找出的是NUMBER参数是否有不同之处。 –
@RaduStoenescu:从PL/SQL参数传递的角度来看,传递null参数来输入varchar2或number时没有什么区别。 – user272735
@MarkWatts:如果您将具有空值的参数传递给PL/SQL函数,则该函数会看到该参数并且该参数的值为空。 – user272735