1

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

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

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

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

1 回答 1

1

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

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

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

于 2012-11-14T09:28:42.827 回答