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 は開かれた接続です。私は何を間違っていますか?