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,所以找不到。

  

时间: 2024-10-24 14:15:47

Oracle的双引号问题的相关文章

关于oracle sql语句查询时表名和字段名要加双引号的问题

oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动

Oracle 中单引号和双引号的区别

问题产生原因: insert into t_Cluster_Showresult(Outhostname,Domainlist,Iplist,Classify) values ("2014512-7","www.renren.com\twww.baidu.com","192.168.2.1","2") 此条语句执行不成功,报错列不允许,经查,是因为双引号的问题,改成insert into t_Cluster_Showresul

PowerDesigner使用Oracle建库语句中""双引号的问题

这几天使用powerdesigner建库,general database导出的sql建表语句带有""双引号,结果导致我的库中表名都是小写的,但是Oracle查询等语句默认都是大写判断的,因此很是不方 便,以前使用pd没发现这个问题,可能是版本升级导致的,查了一下,原来需要Pd再设置一下:两种方式1.pd Edit Current DBMS-ORACLE9i2::Script\Sql\Format\CaseSensitivityUsingQuote将双引号的设置改为NO 2.变通方法就

关于Access导入Oracle会产生双引号的问题

把Access2007的数据导入到oracle 10g xe中,成功了,可是在写sql语句时必须加双引号 ,如select “name” from “Product”,貌似是因为access为了防止列名与关键词冲突,所以全部加上了“”,批量处理灰常麻烦,解决如下,感谢tangern提供的帮助 -重命名一张表所有列 SELECT 'alter table "'|| t.TABLE_NAME ||'" rename column "' || t.COLUMN_NAME || '&

oracle 创建表加双引号作用

Oracle建的表名和字段名都会自动给我们转换为大写的 双引号在Oracle中表示区分大小写,Oracle是严格区分大小写的,未使用双引号时默认全部大写.可能很多人都会误认为oracle是不区分大小写的,原因是我们在写查询语句的时候,大小写无所谓,结果都是一样的,这只是个表面现象,只要你不使用双引号表示区分大小写,oracle会默认把你写的脚本全部转换为大写的. create table "authorISBN"  (   "authorID"           

PowerDesigner导出的sql中去掉双引号,主要用于Oracle

如题,这些双引号对于Oracle建表实在是糟糕透了: 解决方法: (转载,作者的百度已经挂了,无法放上链接,自私一把,以前的Oracle项目不见了,无法展示) 1.去掉Oracle生成的SQL创建语句中的双引号 用PowerDesigner导出orale数据库的建表sql时,默认会给表名和字段名加上双引号,如下图:这样给操作数据库带来很大的不便,解决的办法是设置Database菜单,然后点击Edit Current DBMS菜单,再依次点开Script->Format,然后找到CaseSensi

JavaScript基础 输出含有双引号/单引号的字符串

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

PHP 单双引号的区别

PHP中单双引号的区别 "" 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出.'' 单引号里面的不进行解释,直接输出.所以在效率上 单引号比双引号要快了. 例如:$abc = 'my name is tome';echo $abc //结果是:my name is tomecho '$abc' //结果是:$abcecho "$abc" //结果是:my name is tom PHP引号使用原则1.字符串的值用引号2.PHP中尽量用单引号,HTML代

python之双引号和三引号

双引号 多行输入的时候用三引号 ========================== Tab补全的文本: ===========================================