首页 > 解决方案 > 收到错误: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;
  }

标签: javasqloracle

解决方案


会不会是您的employee_number 没有有效值?

我建议您使用参数化查询。您开始查询

active_flag = ?

并在 PreparedStament 中设置值

prSt1.setString(1, activeFlag); 

尝试对employee_number 使用相同的方法。

prSt1.setLong(2, employee_number);

推荐阅读