休止状態からストアド プロシージャ (その内部で別のプロシージャを呼び出す) を呼び出しています。
Query query = session.getNamedQuery("query_name");
query.setParameter('param', 'value');
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List returnList = query.list();
SQL 開発者で実行すると、ストアド プロシージャは独立して正常に実行されます。しかし、これをアプリケーションで実行すると、次のエラーが発生します。
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
私たちが試したこと:
- 休止状態から単純なストアド プロシージャを呼び出す - うまく機能しています。
- テストケースを作成して、ストアドプロシージャ(エラーをスローする)が呼び出されているメソッドをテストします-うまく機能しています。
私たちの質問は、なぜ同じクエリがテストケースで正常に実行され、アプリケーションの実行中には正常に実行されないのですか?
何か案は?
更新 それは私のせいでした。引数を間違って渡していました。最初の 2 つの引数を交換しただけです。この問題に直面している人は、名前付きクエリで引数の順序を確認してください。
ありがとう。