1

休止状態からストアド プロシージャ (その内部で別のプロシージャを呼び出す) を呼び出しています。

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

私たちが試したこと:

  1. 休止状態から単純なストアド プロシージャを呼び出す - うまく機能しています。
  2. テストケースを作成して、ストアドプロシージャ(エラーをスローする)が呼び出されているメソッドをテストします-うまく機能しています。

私たちの質問は、なぜ同じクエリがテストケースで正常に実行され、アプリケーションの実行中には正常に実行されないのですか?

何か案は?

更新 それは私のせいでした。引数を間違って渡していました。最初の 2 つの引数を交換しただけです。この問題に直面している人は、名前付きクエリで引数の順序を確認してください。

ありがとう。

4

1 に答える 1

0

それは私のせいで、引数を間違って渡していました。最初の 2 つの引数を交換しただけです。この問題に直面している人は、名前付きクエリで引数の順序を確認してください。

于 2013-07-01T05:17:45.630 に答える