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

mac2024-04-09  29

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

无非是这几种原因:

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

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

 

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

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

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

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

select "update" from table;

最新回复(0)