一则> ORA-00936: missing expression 错误的排查处理 SQL中的中括号对应ORACLE中的双引号
一般情况下出现 “> 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;
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751897.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?