sqlser存储过程最多能有几个output参数 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和不加output的参数一起为1024个,如果没有其它参数最多就是1024 c = conn.prepareCall("{call sp_YG_StatEmRtrRelationMedFare(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");c.setString(1,"7AE0A3FB-2D6C-4E51-8B10-71EAFA2D269F"); //设置非output型的参数的值for(int i=2;i<24;i++){ c.registerOutParameter(i,Types.FLOAT); }错误:[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]为过程或函数 sp_YG_StatEmRtrRelationMedFare 指定的参数太多。我数了几遍,存储过程里面和?都是23个啊! alter proc sp_YG_StatOntheJobEmRtrRelationMedFare@unitID uniqueidentifier,@planSum float output,@planSum2 float output,@actualSum float output,@actualSum2 float output,@peopleSum int output,@peopleSum2 int output,@clinicSum float output,@clinicSum2 float output,@avgClinicSum float output,@avgClinicSum2 float output,@inhpSum float output,@inhpSum2 float output,@inhpPeopleSum int output,@inhpPeopleSum2 int output,@tlbPeopleSum int output,@tlbPeopleSum2 int output,@tlbClinicSum float output,@tlbClinicSum2 float output,@tlbInhpSum float output,@tlbInhpSum2 float output,@tlbTotal float output,@tlbTotal2 float outputas 传入参数的数量大于存储过程的参数数量如:create proc P(@ID int output)asset @ID=2godeclare @i int,@i2 intexec p @i output,@i output/*消息 8144,级别 16,状态 2,过程 P,第 0 行为过程或函数 P 指定了过多的参数。*/ 刚才掉线,是中国风说的,我是在一本书上看到的,超过23肯定没有问题,是你用java调用时出了问题,sql中调用时输出参数要加output,你那个不要?不要也不应该报错,只是没有输出值,java不会 sp_YG_StatEmRtrRelationMedFare 指定的参数太多--------是说你传入的值的个数大于你的参数个数,而不是存储过程的参数限制.如果你的存储过程有23个参数, 而你程序端传了24个值来,那么就会出现这个问题.检查你程序端传过来的参数个数是否对应.例子风已经给出来了, 关于昨天SQL问题的延续 求sql command 10条数据 sql server快还是 access快 请问sql中怎么进行累加呀? 任意关键词组合的OR查询,求帮忙!谢谢! 这种数据库应怎样设计 BCP 导出不响应 数据导入问题 DB-Library编程疑难问题请教! 从ORACLE中直接备份数据 怎样知道数据库中表数据的修改时间 诚恳指点一二,下面mssql存储过程1和存储过程2是否有意义,执行效率一样吗?谢谢
c.setString(1,"7AE0A3FB-2D6C-4E51-8B10-71EAFA2D269F"); //设置非output型的参数的值
for(int i=2;i<24;i++){
c.registerOutParameter(i,Types.FLOAT);
}错误:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]为过程或函数 sp_YG_StatEmRtrRelationMedFare 指定的参数太多。
我数了几遍,存储过程里面和?都是23个啊!
@unitID uniqueidentifier,
@planSum float output,
@planSum2 float output,
@actualSum float output,
@actualSum2 float output,
@peopleSum int output,
@peopleSum2 int output,
@clinicSum float output,
@clinicSum2 float output,
@avgClinicSum float output,
@avgClinicSum2 float output,
@inhpSum float output,
@inhpSum2 float output,
@inhpPeopleSum int output,
@inhpPeopleSum2 int output,
@tlbPeopleSum int output,
@tlbPeopleSum2 int output,
@tlbClinicSum float output,
@tlbClinicSum2 float output,
@tlbInhpSum float output,
@tlbInhpSum2 float output,
@tlbTotal float output,
@tlbTotal2 float outputas
传入参数的数量大于存储过程的参数数量如:create proc P(@ID int output)
as
set @ID=2
godeclare @i int,@i2 int
exec p @i output,@i output/*
消息 8144,级别 16,状态 2,过程 P,第 0 行
为过程或函数 P 指定了过多的参数。
*/
sql中调用时输出参数要加output,你那个不要?不要也不应该报错,只是没有输出值,java不会
--------
是说你传入的值的个数大于你的参数个数,
而不是存储过程的参数限制.
如果你的存储过程有23个参数, 而你程序端传了24个值来,
那么就会出现这个问题.
检查你程序端传过来的参数个数是否对应.
例子风已经给出来了,