![](/img/trans.png)
[英]JDBC SQL Server Stored Procedure with ResultSet, return value, and output parameters
[英]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以某种方式可以看到@param
和IN param
由于名称而相同,但是JDBC却没有看到,因此,它没有返回任何数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.