一则> ORA-00936: missing expression 错误的排查处理 SQL中的中括号对应ORACLE中的双引号

一般情况下出现 “> ORA-00936: missing expression ”

无非是这几种原因:

  1. 选取的最后一个字段与from之间有逗号
  2. SQL语句中有表字段是oracle关键字
  3. 语句之间缺少逗号等分隔符
  4. 查询语句中写了where却缺少必要条件字段定义
  5. 。。。。。

今天遇到问题不是上面的情况,导致的原因是“LanguageLevel ,Educational,[Application] .....,” select的某字段加了中括号,在SQL中这个是正常的,

 

下面有关sql语句中[]的信息适用于Sql Server、Access等多种数据库。 

  1. sql语句中加[]是为了防止歧义,避免与系统保留关键字冲突,使计算机能识别。sql语句中有些字段可能是关键字,比如user是sql server数据库的关键字,password是Access数据库的关键字,这时候你直接用字段名就会报错,如果加了[]就可以正常执行。
  2. 大部分情况下,为字段加上[]是正确的选择,但并不是所有的字段名都能加上中括号。TOP关键字后面的字段既不能加小括号也不能加中括号,还有ON后面的条件表达式里的字段都不能加括号。
  3. 解决较长的中文名表名可能会被不识别的问题。

而ORACLE中也有类似于SQL中的 [] 的表达式,那就是双引号,

比如某张表的一个字段名为:update,当我们进行查询的时候总会出错。但是只要把update加上双引号就好了

select "update" from table;

posted @ 2022-10-04 00:15  IT情深  阅读(1329)  评论(0编辑  收藏  举报