jdbc sql错误:语句未返回结果集

火焰

我有两个存储过程,如下所示:

create stored procedure p1
as
    select * from table1 where datediff(day, table1.[date], getdate())

create stored procedure p2
as
   declare @t1 table(
     ref varchar(20)
   )
      insert into @t1 select * from table1 where ref = 'some ref'
      declare @t2 table(
      fname varchar(20),
      lname varchar(20),
      email varchar(1000)
  )
  declare @len int = (select count(ref) from @t1)
  while @len > 0
  begin
  declare @value varchar(20)  = (select top 1 ref from @t1)
  insert into @t2 select * from table2 where ref = @ref
  delete from @t1
  where ref = @value
  set @len = (select count(ref) from @t1)
  end
  select * from @t2

Java代码

 ....
 String query = "Execute [p2]";

 try(CallableStatement cstmt = conn.prepareCall(query);
     ResultSet rs = cstmt.executeQuery()){
        ... some code
    }

表变量@ t1保留表'table1'的选择结果

变量@len保留@ t1中的行数

使用@len > 0如while循环,我想选择从另一个表“表2”表变量记录条件@ T2持有从“表2”中选择记录

delete语句从@ t1中删除值,将@len设置为@ t1中新的行数,最后一条语句返回所有存储在@ t2中的记录

第一个过程工作正常,但是第二个过程仅在SQL Server中工作。

我在Java应用程序中收到一条错误消息

语句未返回结果集

我希望它返回查询末尾具有select语句的结果集。

请对此有办法吗?

戈德·汤普森

您的[p2]存储过程需要SET NOCOUNT ON在开始时就包含右对齐,以抑制“ n个受影响的行”的计数,因此JDBC不会混淆应放入ResultSet中的内容:

CREATE PROCEDURE p2
AS

SET NOCOUNT ON;

declare @t1 table(
    ref varchar(20)
)

-- ... and so on

有关SET NOCOUNT的更多信息,请参见

设置NOCOUNT(Transact-SQL)

有关精确地从存储过程调用返回什么的更多信息,请参见

如何使用JDBC从存储过程中获取所有信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JDBC SQL SERVER:语句未返回结果集

来自分类Dev

Hive JDBC连接返回“查询未生成结果集”

来自分类Dev

JDBC结果集检索LocalDateTime

来自分类Dev

休眠列表与JDBC结果集

来自分类Dev

JDBC - 结果集缓存管理

来自分类Dev

结果集上的SQLite JDBC总是返回null。0

来自分类Dev

JDBC SELECT COUNT(*)在HSQLDB上返回空结果集

来自分类Dev

结果集上的SQLite JDBC总是返回null。0

来自分类Dev

需要春季jdbc结果集以返回对象列表,而不是LinkedHashMap

来自分类Dev

SQL Server异常:语句未返回结果集

来自分类Dev

JDBC的OBIEE SQL语句生成

来自分类Dev

SQL语句未返回结果

来自分类Dev

JDBC中的SELECT语句

来自分类Dev

JDBC:无法创建语句

来自分类Dev

JDBC中的SELECT语句

来自分类Dev

JDBC删除条件语句

来自分类Dev

在Hibernate中获取JDBC结果集

来自分类Dev

JDBC:结果集为空/空?

来自分类Dev

JDBC查询。根据来自控制台的输入检索记录。称为SQL语句的错误未正确结束

来自分类Dev

Servlet错误JDBC ClassNotFoundException

来自分类Dev

Spring JDBC错误连接

来自分类Dev

Maven的JDBC连接错误

来自分类Dev

PostGIS JDBC SQL查询

来自分类Dev

JDBC事务,sql语句的执行顺序

来自分类Dev

从Spark sql jdbc语句取消查询

来自分类Dev

JDBC上的HSQLDB:批量执行SQL语句

来自分类Dev

JDBC返回的受影响的行数错误

来自分类Dev

jdbc批处理不同的语句

来自分类Dev

Magento SQL语句未返回预期结果