先看看网上的解决办法:
源:http://hi.baidu.com/wyjsusan/item/c5fe63f5321ab4de42c36a99
两次遇到这个问题了,还是这样子解决~!
————————————————————————————我是分割线————————————————————————
如果java代码上没有问题,存储过程在SQLServer中执行也没有问题,就要检查一下存储过程的开始部分是否加上了
“SET NOCOUNT ON”
这句话,如果没有,就是这里的问题了,加上这句话,再重新执行代码,OK!通过!
一般出现这种状况是在存储过程中在使用select命令前使用了更新命令,如insert ,update,delete等命令,直接使用select命令的存储过程即使不加上“SET NOCOUNT ON”也能获得结果集,所以经常会忽略这个问题!
但是在.Net环境下没发现有这种问题,呵呵,毕竟不是一家的啊!(这个不知道,没试过。)
但是我按照他的方法弄了以后,还是会出现那样的问题
最后通过看CallableStatement的API解决的,如下:
if(cs.execute()){
ResultSet rs = cs.executeQuery();
while (rs.next()) {
.
.
.
不知道网上的这个具体是怎么样的存储过程,
我的存储过程:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create proc [dbo].[getCarGoodsDetails](@customerID varchar(40))
as
declare @carID varchar(40)
set @carID=(select carID from ShoppingCar where customerID=@customerID)
if(@carID is not null)
begin
select g.goodsID,goodsName,goodsPrice,quantity from Goods g,ShoppingCarDetails s
where g.goodsID=s.goodsID and s.carID=@carID
end
分享到:
相关推荐
在Java中使用存储过程涉及到多个知识点,包括数据库连接、CallableStatement接口的应用以及具体的SQL语句调用等。本文将从这些方面入手,详细介绍如何在Java应用程序中调用存储过程。 ### 一、数据库连接 #### 1.1...
本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...
在Java应用程序中,可以使用`CallableStatement`来调用存储过程并获取结果集。下面是一个简单的示例: ```java // 创建 CallableStatement 对象 CallableStatement csmt = conn.prepareCall("{call pkg_test.get(?)...
### Java存储过程返回数据集 #### 标题与描述中的知识点概述 在Oracle数据库中,存储过程返回数据集的功能可以通过定义游标(RefCursor)来实现。与SQL Server相比,Oracle在这一方面需要额外的步骤来进行配置和...
本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle存储过程是一种预编译的SQL语句集合,它可以在数据库服务器端执行,提高性能,减少网络传输。`PROCEDURE.sql`...
例如,在MySQL中,存储过程可以直接返回一个SELECT语句的结果集,这样客户端(如Java程序、PHP脚本或数据库管理工具)就可以像处理任何其他查询结果一样处理它。这种方式对于那些需要显示在用户界面上或者进一步处理...
`OUT`参数是存储过程中的一种特殊参数类型,用于将结果传出存储过程,供调用者使用。 Java中调用存储过程主要通过JDBC(Java Database Connectivity)接口实现。以下是一步步的操作步骤: 1. **加载数据库驱动**:...
在Java编程中,调用数据库存储过程是一种常见的操作,特别是在处理复杂的业务逻辑或者批量数据操作时。本篇文章将深入探讨如何使用Java与MySQL数据库进行交互,实现调用存储过程,并提供一个测试通过的实例。 首先...
最后创建一个名为`sp_test2`的存储过程,该过程用于根据书籍ID查询书名和出版社名称,并将这两个结果作为输出参数返回: ```sql CREATE OR REPLACE PROCEDURE sp_test2 ( spno IN VARCHAR2, spname OUT VARCHAR2,...
在Java编程中,调用数据库的存储过程并处理返回结果是常见的任务,特别是在需要执行复杂数据库操作或者封装业务逻辑时。本文将详细探讨如何在Java中调用存储过程,并处理返回的数组类型数据。 首先,存储过程是一种...
在Java中调用不返回结果集的存储过程时,主要步骤包括建立连接、准备调用语句、设置输入参数、执行存储过程以及处理可能产生的警告信息。 1. **建立连接**:使用`ConnectionHelper.getConnection()`方法获取到`...
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
如果存储过程返回多结果集,可以使用`getMoreResults()`方法循环遍历。 7. **异常处理**: 在实际应用中,要确保对可能出现的异常进行捕获和处理,以保证程序的健壮性。 8. **注意点**: - 不同的数据库系统可能...
在Java编程中,调用Oracle数据库的存储过程并获取返回的结果集是一项常见的任务。这个例子展示了如何处理返回Record类型和Cursor类型的存储过程。Record类型在Oracle中是一种自定义的数据结构,可以用来模拟类似...
6. **处理结果**:如果存储过程返回结果集,你可以通过`ResultSet`来获取数据。 ```java ResultSet rs = cs.getResultSet(); while (rs.next()) { // 处理结果集 } ``` 7. **关闭资源**:最后,别忘了关闭打开的...
在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...
示例代码中展示了如何使用Java来创建一个添加记录的存储过程,该过程名为addUser,接受用户名和电子邮件作为参数,并执行SQL插入操作。代码中创建了与Oracle数据库的连接,并构造了一个动态的SQL语句来向数据库中...
首先,存储过程是数据库中预编译的一组SQL语句,它们可以包含控制流语句,参数,甚至可以返回结果集。在Java中,我们通常使用JDBC(Java Database Connectivity)API来与各种类型的数据库进行交互,包括调用存储过程...
此外,对于更复杂的情况,比如存储过程返回多结果集,可能需要使用`ResultSetMetaData`来获取列信息,然后遍历结果集。 参考上述步骤,你可以根据自己的需求修改并实现调用Oracle存储过程的Java代码。确保正确配置...