我将如何修复这些 "ORA-00933: SQL command not properly ended" "ORA-00923: FROM keyword not found where expected" 错误?
How would I fix these "ORA-00933: SQL command not properly ended" "ORA-00923: FROM keyword not found where expected" errors?
本声明:
SELECT id, units, cost FROM inventory_list WHERE cost <= 20;
给我:
ORA-00923: FROM keyword not found where expected
虽然这条语句:
SELECT * FROM items WHERE ilt_id = 'il010230126' OR ilt_id = 'il010230128';
给我:
ORA-00933: SQL command not properly ended
不确定,可能与版本有关(以下 link 适用于 oracle 10g...但您可以在此站点上看到
https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm
那个cost是oracle的保留关键字,所以用它作为列名是不明智的。
如果您无法控制 table 我认为您可以用双引号将其括起来,例如 select "COST" 以避免 oracle 将其作为保留字。
默认情况下,Oracle 以大写形式创建字段,因此字段名称需要大写,除非在创建 table 时通过用引号将其括起来强制为不同的大小写。
检查您的文件中没有不可见字符,并且您使用的编码正确。我有时会不小心引入它们,因为我有一个非英文键盘映射并且不小心按错了组合键。
只需再次输入您的 SQL 语句之一并对其进行测试。
本声明:
SELECT id, units, cost FROM inventory_list WHERE cost <= 20;
给我:
ORA-00923: FROM keyword not found where expected
虽然这条语句:
SELECT * FROM items WHERE ilt_id = 'il010230126' OR ilt_id = 'il010230128';
给我:
ORA-00933: SQL command not properly ended
不确定,可能与版本有关(以下 link 适用于 oracle 10g...但您可以在此站点上看到
https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm
那个cost是oracle的保留关键字,所以用它作为列名是不明智的。
如果您无法控制 table 我认为您可以用双引号将其括起来,例如 select "COST" 以避免 oracle 将其作为保留字。
默认情况下,Oracle 以大写形式创建字段,因此字段名称需要大写,除非在创建 table 时通过用引号将其括起来强制为不同的大小写。
检查您的文件中没有不可见字符,并且您使用的编码正确。我有时会不小心引入它们,因为我有一个非英文键盘映射并且不小心按错了组合键。
只需再次输入您的 SQL 语句之一并对其进行测试。