嘿,我有以下SQL查询:
Class.forName("oracle.jdbc.driver.OracleDriver");
PreparedStatement stmt = con.prepareStatement("SELECT " +
"DECODE(MAX(ID), NULL, 'NO', 'YES') BOOL_VAL " +
"FROM " +
"MASTERNICSDB " +
"WHERE " +
"FTAG = ? " +
"AND " +
"BADGENUM IS ?");
stmt.setString(1, System.getenv("COMPUTERNAME").toUpperCase());
stmt.setNull(2, Types.VARCHAR);
ResultSet rs = stmt.executeQuery();
rs.next();
上述问题是它不断抛出:
ORA-00908:缺少NULL关键字
我尝试了以下所有操作:
stmt.setNull(2, Types.VARCHAR);
stmt.setString(2, "NULL");
stmt.setNull(2, oracle.jdbc.OracleTypes.VARCHAR);
stmt.setObject(2, null);
似乎都不起作用。它们都收到与上述相同的错误。
但是,如果我将值放在查询中,一切都很好-但由于SQL注入和所有有趣的事情,我不想这样做。