SQL存储过程在查询分析工具中正常……在JAVA中运行提示该语句没有返回结果集。

RT以下是存储过程CREATEPROCEDUREap_SetOutputVar@countintegerOUTPUTASSETNOCOUNTON;SELECT@count... RT
以下是存储过程

CREATE PROCEDURE ap_SetOutputVar @count integer OUTPUT
AS
SET NOCOUNT ON;
SELECT @count = count(*) FROM test
GO
以下是报错
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
at

求大神指导……
展开
 我来答
SQL的艺术
2013-12-02 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3323

向TA提问 私信TA
展开全部
正确写法:
CREATE PROCEDURE ap_SetOutputVar()
AS
SET NOCOUNT ON;
SELECT count(*) as RowCount FROM test
GO

然后JAVA中就可以获得结果集了。不要用存储过程的返回值方法获得
huadonghai1314
2013-12-02 · 超过13用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:36.9万
展开全部
确实是没有返回结果集。
SELECT @count = count(*) FROM test

这句你只是对@count变量赋值而已。 out 参数呢?
追问
那该怎么写呢?就拿这个为例子……刚刚开始接触……很多都是模糊的……3Q
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ef93d62
2013-12-02 · 超过18用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:35.5万
展开全部
没有返回结果集,就应该写句return啊

return @count 就能输出count的数据
追问
CREATE PROCEDURE ap_SetOutputVar @count integer OUTPUT
AS
SET NOCOUNT ON;
SELECT @count = count(*) FROM test
return @count
GO
这样么?我试了一下……在查询分析器中返回值和count都有值……但是在JAVA中还是无返结果集
追答
那你检查一下在java中的调用有没有问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式