Oracle的双引号问题

Posted 豆腐全家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle的双引号问题相关的知识,希望对你有一定的参考价值。

昨天遇到一个问题,记录一下,SQL如下:

  select tt.* from (
    
select u.chapter_id as "chapterId",        case when u.chapter_id=u.f_id then u.chapter_name else 123 end as "chapterName",
         u.update_time
as "updateTime"    from T_USER_INFO u ) tt   where tt.chapterName = haha;

此时报错tt.chapterName未无效字符

那么首先判断单双引号及分号不是中文字符,发现问题还是出在chapterName上,执行除where条件以外的SQL是有结果的,

于是研究别名的双引号是不是有问题,发现去除别名的双引号后,整个SQL执行成功;

在百度之后了解到,Oracle里打双引号是为了特殊字符(如:_,中文字符等)和严格区分大小写的,如果不加的话会默认是大写,所以在where里的chapterName去匹配的是CHAPTERNAME,所以找不到。

 

  



以上是关于Oracle的双引号问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle的双引号问题

Oracle中的单引号怎么转义

用R中的双引号替换转义的双引号

Prettier 不适用于将可视代码中的双引号更改为单引号

循环遍历双引号但忽略单引号中的双引号

navicat连接oracle怎么去除双引号