ORA-00933: SQL 命令未正确结束异常

Posted

技术标签:

【中文标题】ORA-00933: SQL 命令未正确结束异常【英文标题】:ORA-00933: SQL command not properly ended exception 【发布时间】:2018-10-29 06:03:25 【问题描述】:
SELECT * FROM SMFTABLE WHERE (Upper(SYMBOL) LIKE '%A%' );

上面的查询给出了一个

查询由以下代码构建:

buff.append("SELECT * FROM ").append(smftable).append(" WHERE (Upper(" + (String) colNames).append(") LIKE '%").append(secString.toUpperCase()).append("%' );");

【问题讨论】:

smftable 的值是多少,这个(字符串?)变量在哪里定义? secString 的内容是什么,你检查它是否包含任何单引号? smftable 包含“SMFTABLE”作为其值,而 secString 包含要在给定查询“A”或“a”中搜索的字符串 【参考方案1】:

从末尾删除;,因为 JDBC 不需要它。试试这个。。

【讨论】:

尾随分号不应破坏查询(我认为)。 @TimBiegeleisen:是的,但会出现不同的错误消息:***.com/questions/10728377 @a_horse_with_no_name 我似乎记得在 JDBC 和 mysql 中使用分号。从this post 我了解到一些驱动程序将其删除,而其他驱动程序将因错误而失败。并非在所有情况下都需要(我认为)。 是的。我确实尝试删除它,但它没有改变结果,即关于异常

以上是关于ORA-00933: SQL 命令未正确结束异常的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00933: SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束

SQL 错误:ORA-00933:SQL 命令未正确结束 00933。00000 -“SQL 命令未正确结束”

“ORA-00933: SQL 命令未正确结束”

为啥会出现“ORA-00933:SQL 命令未正确结束”错误(立即执行)?

ora-00933:SQL 命令未正确结束

ORA-00933: 运行创建序列命令时 SQL 命令未正确结束