带有JDBC的临时表的存储过程中没有ResultSet

时间:2014-01-27 15:01:02

标签: java mysql sql sql-server jdbc

我有一个存储过程,它创建临时表并填充临时表。填充后,它会返回表格内的行(SELECT)。

从MySQL工作台运行它时工作量非常大,但在使用JDBC的JAVA中,ResultSet为空。我已经阅读了一些帖子,说明我们不应该使用PreparedStatment,但即使Statement也无效。

为了测试,我将工作划分为Stored prodecure。现在我打电话给

CallableStatement ps = connection.prepareCall("{CALL myProcedure(?)}");
ps.setString(1, "value");
ps.execute();

创建临时表并填充它。此后我尝试做同样的连接

Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM tmp_table");

仍然是ResultSet为空。我能做什么?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

谢谢大家的帮助! 我发现了错误。错误发生在代码中。

我在调用程序时发送一个参数。出于测试目的,我做了

SET @param = "value";

后来,我删除了它但是在将数据插入使用@param的临时表时忘记删除它。 MySQL以某种方式可以看到@paramIN param是相同的,因为名称,但JDBC无法看到,因此,它没有返回任何数据。