java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确以 WHER



>我正在尝试使用 WHERE 子句在我的 Oracle 数据库中执行查询:

java.sql.Date today = new java.sql.Date(System.currentTimeMillis());
String sql = new StringBuilder("SELECT *")
.append("FROM USERNAME.MY_TABLE m")
.append("WHERE m.A_DATE_COLUMN = ?").toString();
PreparedStatement ps = con.prepareStatement(sql);
ps.setDate(1, today);
ResultSet rs = ps.executeQuery();

但是我不断收到错误:

SQL 命令未正确结束

当调用executeQuery()时。 我知道这与设置我的参数有关,因为如果我不包含 WHERE 子句,查询运行良好并返回正确的数据。我正在查询的表只有一列类型为 DATE。

我尝试使用setString而不是setDate并在我用来创建查询的字符串中?后添加一个分号,但据我了解我不想包含分号。

您需要添加空格:

String sql = new StringBuilder("SELECT * ")
.append("FROM USERNAME.MY_TABLE m ")
.append("WHERE m.A_DATE_COLUMN = ? ").toString();

追加后,查询如下所示。

SELECT *FROM USERNAME.MY_TABLE mWHERE m.A_DATE_COLUMN = ?

正确添加空格。

String sql = new StringBuilder("SELECT * ")
.append("FROM USERNAME.MY_TABLE m ")
.append("WHERE m.A_DATE_COLUMN = ?").toString();

最新更新