我已经写了registerOutParameter,怎末还会出现找不到输出参数的异常?

wk2056991 2004-10-23 08:57:59
存储过程如下:
CREATE Procedure CMRC_CustomerAdd
(
@FullName nvarchar(50),
@Email nvarchar(50),
@Password nvarchar(50),
@CustomerID int OUTPUT
)
AS

INSERT INTO CMRC_Customers
(
FullName,
EmailAddress,
Password
)

VALUES
(
@FullName,
@Email,
@Password
)

SELECT
@CustomerID = @@Identity

部分语句如下:
cs= c.prepareCall("{?=call CMRC_CustomerAdd(?,?,?)}");

cs.setString(2,fullName);
cs.setString(3,emailAddress);
cs.setString(4,password);

cs.registerOutParameter(1,Types.INTEGER);

cs.execute();

测试程序如下:
public class test {

public static void main(String[] args) {
JdbcCustomerOperations j=new JdbcCustomerOperations();
j.AddCustomer("a","a","a");
}
}

错误提示如下:
SQLException:过程 'CMRC_CustomerAdd' 需要参数 '@CustomerID',但未提供该参数。





...全文
195 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tasia 2004-10-24
  • 打赏
  • 举报
回复
cs= c.prepareCall("{?=call CMRC_CustomerAdd(?,?,?)}");
这一句应该这样:
cs= c.prepareCall("{call CMRC_CustomerAdd(?,?,?,?)}");
因为你的最后一个参数是out参数,不是返回值。

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧