名前付き問合せを使用してPL/SQLファンクションをコールします。 パラメータの1つが私に問題を引き起こします。 PL/SQL定義では、そのタイプはNUMBERです。 ここにJavaコードが設定されています。 q.setParameter (Test.DISTRICT_ID_PARAM,districtId);
およびdistrictId
は、Long
です。Oracleストアド・ファンクションの1つのパラメータがNULLの場合にスローされます。
districtId
がnullですべてではないokですが、それがnullであるとき、これが結果です: org.hibernate.exception.SQLGrammarException: could not execute query
私はdistrictId
がnullでない場合、クエリがうまく機能するので、配管には問題がありません確信しています。
DB関数は、VARCHAR2型の別の3つのパラメータを受け入れます。私は前のものと同じようにそれらを設定し、すべてがうまくいきます(たとえそれらがnullであっても)。私が見つけようとしているのは、NUMBER個のパラメータに違いがあるかどうかです。 –
@ RadStoenescu:PL/SQLパラメータの渡し方から、nullパラメータをvarchar2またはnumber型に渡すときに違いはありません。 – user272735
@ MarkWatts:PL/SQLファンクションにNULL値のパラメータを渡すと、ファンクションはそのパラメータを認識し、パラメータの値はNULLになります。 – user272735