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