【问题标题】:Unable to return a ResultSet via JDBC when SELECTing from a temp table in MS SQL 2008 using a Stored Proc使用存储过程从 MS SQL 2008 中的临时表中选择时无法通过 JDBC 返回 ResultSet
【发布时间】:2012-08-15 08:12:58
【问题描述】:

我有一个存储过程,它创建多个临时表,然后在各个临时表上创建一个联接。

如果我在 MS SQL 2008 中执行存储过程,我可以看到结果选择子句的输出。但是,当我通过 JDBC 调用存储过程时,我不断收到错误消息,提示 Statement 没有返回结果集。

我环顾四周,但找不到解决方案,所以我求助于创建一个持久表并将存储过程的输出插入其中。

  1. 为什么会发生这种情况? (我读到过一段话,因为一旦存储过程完成执行,临时表就会被截断,不会通过 JDBC 返回任何结果集
  2. 有没有办法在不使用持久表的情况下做到这一点?

【问题讨论】:

    标签: sql-server-2008 stored-procedures jdbc


    【解决方案1】:

    这是一个类似的问题: Temporary tables using JDBC with null ResultSet

    这是公认的答案:http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/67b10d74-e94f-4b58-8ee3-59ff390db1cf

    总结 - 对于从临时表返回的存储过程,不要使用 PreparedStatement,而是使用常规 Statement。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-18
      • 2014-11-21
      • 2016-10-06
      • 2010-11-29
      • 2011-08-26
      • 1970-01-01
      • 2017-09-06
      • 2021-09-02
      相关资源
      最近更新 更多