java - 如何使用 jdbc java 创建临时表
问题描述
我需要创建一个临时表来存储一些我将在以后的查询中处理的 id。我收到错误
com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
当我执行查询以在我的 sql 中创建 #temp 表时。我不需要此执行的任何结果集,只需要创建一个包含记录的临时表。请指导。
我的主要查询代码:
String queryTempTable = "SELECT TOP (2) A.Id INTO #temp\n" +
"FROM SALESDM.dbo.FactSales A\n" +
"INNER JOIN SALESDM2.dbo.FactSales B\n" +
"ON A.Id = B.Id\n" +
"AND (\n" +
" A.sysDateModified = B.sysDateModified\n" +
" OR A.Id = B.Id\n" +
" OR A.ModifiedDatetime = B.ModifiedDatetime\n" +
" )";
System.out.println(queryTempTable);
if (conn == null) {
System.out.println("Unable to create Connection");
} else {
Statement stmtTempTable = conn.createStatement();
stmtTempTable.executeQuery(queryTempTable);
}
解决方案
executeQuery
只有在检索数据并需要 ResultSet 时才应使用。
如果您正在修改数据,那么您应该使用execute
:
stmtTempTable.execute(queryTempTable);
推荐阅读
- javascript - TypeScript 中访问者模式的替代方案(避免使用 instanceof 条件)
- sql - Oracle-SQL:不考虑 AND 如果 WHERE 子句参数为空
- swift - Swift 4后退按钮没有出现
- c++ - 如何更改工具栏中的 QAction 的颜色?
- haskell - 如何创建包含多变量函数的 Haskell 数据结构?
- android - 无法生成签名的apk,下载资源出错
- ios - 删除特定 pod 中已弃用的 iOS 框架警告
- css - 显示设置为 flex 时边距不会折叠
- c# - 如何从 url 下载文件并在 c# 中管理下载计数
- java - 检查每个循环中的元素是否为空