繁体   English   中英

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

[英]No ResultSet from stored procedure with temporary table with JDBC

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

从MySQL工作台运行时,它的工作原理非常好,但是在具有JDBC的JAVA中,ResultSet为空。 我浏览了一些帖子,说我们不应该使用PreparedStatment但即使Statement也不能使用。

为了进行测试,我将工作划分为存储过程。 现在我打电话给:

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为空。 我能做什么? 任何帮助表示赞赏。

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

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

SET @param = "value";

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM