プロジェクトでは、hibernateをORMツールとして使用しています。ストアドプロシージャを呼び出す必要があるシナリオがあります。このストアドプロシージャは、カーソルを内部的に使用して、データベーステーブルに格納されているルールのリストを参照します。ハイバーネーションで呼び出されたときにカーソルを含むストアドプロシージャが失敗します。
我々は、カーソルを反復処理しているとき、私たちは@@ sqlstatusとをチェック!= 2。カーソル内の結果セットが完全に横断されたとき、sqlstatusは2になります。
我々は直接EXECを使用してストアドプロシージャを実行すると、それは結果を返します。また、java JDBCコードも実行します。しかし、私たちがhibernateを呼び出すと、何らかの形でsqlstatus = 2が見つかるため、@@ sqlstatus!= 2の条件チェックで失敗します。ストアドプロシージャでデバッグ文をほとんど試しませんでした。結果セットをsqlstatus = 2としてトラバースし、ストアドプロシージャはnullを返します。私たちは、Sybase ASE 15.7を使用している
、4.1バージョンを休止。
問題の原因を教えてください。