1

MySql にストアド プロシージャの例があり、それを JDBC で呼び出したいと考えています。問題は、次のエラーが発生することです。

java.sql.SQLException: Parameter number 1 is not an OUT parameter

ストアド プロシージャの定義は次のとおりです。

delimiter \\
create procedure get_average (
  out a decimal(8,2)
)
begin
  select avg(grade) into a from students;
end \\

ご覧のとおり、生徒のテーブルがあり、平均を計算しています。MySqlでテストするとうまくいきます。

Java コード:

CallableStatement cstmt = con.prepareCall("call get_average(?)");
cstmt.registerOutParameter(1, java.sql.Types.DOUBLE);
rs = cstmt.executeQuery();
double average = cstmt.getDouble(1);

ここで、con は開かれた接続です。私は何を間違っていますか?

4

1 に答える 1

0

試す:

CallableStatement cstmt = con.prepareCall("{call get_average(?)}");
于 2013-02-20T14:16:53.070 に答える