java - 收到错误:java.sql.SQLSyntaxErrorException:ORA-00904:“VOID”:标识符无效
问题描述
收到以下代码的错误:
java.sql.SQLSyntaxErrorException:ORA-00904:“VOID”:无效标识符
String sql = "UPDATE eidm_person_resource SET activeFlag=? WHERE employee_number = " + employee_number;
String activeFlag = "N";
public boolean updateActiveFlag() {
String sql = "UPDATE test SET active_flag=? WHERE employee_number = " + employee_number;
Connection con1 = null;
PreparedStatement prSt1 = null;
ResultSet checkRS = null;
int upsertCount = 0;
String activeFlag = "N";
Class.forName("oracle.jdbc.driver.OracleDriver");
String pw = context.decrypt("*******");
con1 = DriverManager.getConnection("**********");
prSt1 = con1.prepareStatement(sql);
prSt1.setString(1, activeFlag);
System.out.println(sql);
upsertCount = prSt1.executeUpdate();
if (upsertCount == 1) {
System.out.println("+++ updated record to test for " + employeeNumber);
}
prSt1.close();
con1.close();
return true;
}
解决方案
会不会是您的employee_number 没有有效值?
我建议您使用参数化查询。您开始查询
active_flag = ?
并在 PreparedStament 中设置值
prSt1.setString(1, activeFlag);
尝试对employee_number 使用相同的方法。
prSt1.setLong(2, employee_number);
推荐阅读
- mysql - 输入密码后关闭MySQL命令行客户端没有任何错误
- android - Android:当应用程序被杀死时接收 Firebase 云消息
- json - 使用@JsonIdentityInfo 时杰克逊“MismatchedInputException:找不到实例的对象 ID”
- python - BigQuery 更新重复字段(数组)中的项目?
- python - 为什么代码和日期不同
- swift - 快速解码 Codable 可选异构集合
- java - 使用 SQL Query 获取玩家位置的方法
- sql - 从 if 语句 SQL 创建表
- makefile - Makefile 创建和“激活”Python 虚拟环境
- animation - SVG Circle在Edge中没有动画