私は単純なはずだと思う仕事を担当しています。私は、OracleLinkから多数のストアド・プロシージャを呼び出すEclipseLinkを使用してEJB 3プロジェクトを作成しました。データソースを正しく設定しました。単純なストアドプロシージャと関数を(パラメータなしでカーソルを返す)接続して実行できます。しかし、私は現在、パラメータを持つストアドプロシージャを実行することができません。EclipseLink - Oracleストアドプロシージャコール初心者問題
私は参考としてhttp://wiki.eclipse.org/Using_Basic_Query_API_(ELUGとしてEclipseLink wikiを使用しています。
コードは次のとおりです。私は、データベース自体へのアクセスがないよう
は、データベースのマニュアルに基づいてStoredProcedureCall call = new StoredProcedureCall();
call.setProcedureName("p_environment.startSession");
List<String[]> args = new ArrayList<String[]>();
args.add(new String[] { "user", "ae01403" });
args.add(new String[] { "application", "app_code" });
args.add(new String[] { "locale", "it_IT" });
for (String[] pair : args) {
call.addNamedArgumentValue(pair[0], pair[1]);
}
DataReadQuery query = new DataReadQuery(call);
for (String[] pair : args) {
query.addArgument(pair[0]);
}
、プロシージャは、指定された名前のパラメータの3 VARCHARをとります。私はその後、アクティブなセッションでexecuteQueryメソッドを呼び出しますが、 "間違った型または引数の数"というエラーを受け取ります。私は間違って何をしていますか?どんな助けもありがとうございます。
EDIT:ストアドプロシージャの署名は、ドキュメントごとに、次のとおりです。
p_environment.startSession(as_user IN VARCHAR2,
as_application IN VARCHAR2,
as_locale IN VARCHAR2);
多くの感謝!
をより正確に私のポストを編集しました答え: – LaGrandMere