0

Java アプリケーションで PL/SQL プロシージャを呼び出して、データベース エントリを更新しています。

Connection connection = null;
CallableStatement preparedCall = null;
Integer result = 0;
preparedCall = connection.prepareCall("{ call ? := pkg_temp.update_data(?, ?)}");
preparedCall.registerOutParameter(1, OracleTypes.INTEGER);
preparedCall.setString(2, variable1);
preparedCall.setString(3, cariable2);
result = preparedCall.executeUpdate();

しかし、executeUpdate() で以下のエラーが発生しています

Caused by: java.sql.SQLException: ORA-06550: line 1, column 11:
PLS-00103: Encountered the symbol "=" when expecting one of the following:
:= . ( @ % ; indicator
ORA-06550: line 1, column 51:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
. ( ) , * % & - + / at mod remainder rem <an exponent (**)>
and or || multiset

私はどこで間違っていますか?

4

1 に答える 1

0

これは間違っており、戻り値パラメーターのプレースホルダーはキーワードの:=にリストする必要があります( JavaDocs に記載されているように):call

connection.prepareCall("{?= call pkg_temp.update_data(?, ?)}");
于 2015-09-16T06:02:31.760 に答える