【发布时间】:2012-10-10 13:13:35
【问题描述】:
我的 java 代码中有一个存储过程调用,它使用 sybase 数据库,如下所示:
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: Prepared Statement: Input parameter not set, index: 4.'
【问题讨论】:
-
你能贴出创建过程语句的顶部(包括变量、默认值等)