我将如何修复这些“ORA-00933:SQL 命令未正确结束”“ORA-00923:未在预期位置找到 FROM 关键字”错误?
Posted
技术标签:
【中文标题】我将如何修复这些“ORA-00933:SQL 命令未正确结束”“ORA-00923:未在预期位置找到 FROM 关键字”错误?【英文标题】:How would I fix these "ORA-00933: SQL command not properly ended" "ORA-00923: FROM keyword not found where expected" errors? 【发布时间】:2019-03-08 02:32:46 【问题描述】:本声明:
SELECT id, units, cost FROM inventory_list WHERE cost <= 20;
给我:
ORA-00923:在预期的地方找不到 FROM 关键字
虽然此声明:
SELECT * FROM items WHERE ilt_id = 'il010230126' OR ilt_id = 'il010230128';
给我:
ORA-00933:SQL 命令未正确结束
【问题讨论】:
这些查询是如何提交的?来自程序(用 php、python、c++ 等编写)、Oracle 命令行工具或其他一些查询工具(toad)。 这两个都是有效的 SQL 语法。 Oracle Application Express 我认为它看起来不错,但我有 25 条这样的语句都有错误:( 您需要在表前加上模式名称吗? 【参考方案1】:对此不确定,可能与版本有关(以下链接适用于 oracle 10g...但您可以在此站点上查看
https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm
这个成本是一个oracle保留关键字,所以将它用作列名是不明智的。 如果您无法控制表格,我认为您可以用双引号将其括起来,例如选择“COST”以避免 oracle 将其作为保留字。
默认情况下,Oracle 以大写形式创建字段,因此字段名称需要为大写,除非在创建表时通过将其括在引号中而强制将其变为不同的大小写。
【讨论】:
我尝试将成本替换为“成本”,但得到 ORA-00904:“成本”:无效标识符。可悲的是,我无法控制桌子。无论如何感谢您的帮助! 在这里查看***.com/questions/1162381/…,他们建议您可能需要将大写的成本放在引号内,例如“COST”而不是“成本” 我能够用“COST”修复该语句。非常感谢! 没问题,我已经更新了答案以反映大写,并解释了为什么其他阅读本文的人使用大写。【参考方案2】:检查您的文件中没有不可见的字符,并且您使用了正确的编码。我有时会不小心介绍它们,因为我有一个非英文键盘映射并且不小心按了错误的组合键。
只需再次键入一条 SQL 语句并对其进行测试。
【讨论】:
我能够通过重新输入来修正我的一个陈述,但与其他几个陈述相比,我没有最大的运气。谢谢!以上是关于我将如何修复这些“ORA-00933:SQL 命令未正确结束”“ORA-00923:未在预期位置找到 FROM 关键字”错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 ORA-00933:SQL 命令未在 oracle 中正确结束?
如何使用另一个表中的另一列更新一列? SQL 错误:ORA-00933:SQL 命令未正确结束
oracle 问题 ORA-00933: SQL 命令未正确结束 如何解决?
ORA-00933: SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束