次のように、sybase データベースを使用する Java コードにストアド プロシージャ コールがあります。
CallableStatement cstmt=sigmaConnection.prepareCall("{call dbo.sp_insRadEntry(?, ?, ?, ?, ?, ?, ?)}");
cstmt.setString(1,"Nappa");
cstmt.setInt(2,40);
cstmt.setString(3,"Vegeta");
cstmt.setString(4,"Saiyan");
cstmt.setString(7,"Hello");
cstmt.execute();
ご覧のとおり、5 番目と 6 番目のパラメーターを意図的に設定していません。ストアド プロシージャには値が渡されない場合にデフォルト値が提供されており、この呼び出しでは dbo.sp_insRadEntry(?, ?, ?, ?, ?, ?, ? )ここに7つのコンマがないと7番目のパラメーターを設定できなかったため、7つのパラメーターがあります。
しかし、4番目のパラメーターを設定したにもかかわらず、次の例外が発生します。
「java.sql.SQLException: JZ0SA: 準備済みステートメント: 入力パラメーターが設定されていません。インデックス: 4。」