概述
单引号用来标记字符串 双引号用来标记识别对象名
以下使用会比较绕:
字符串中出现单引号、双引号; 表或字段等对象的别名(alias)中出单引号、双引号; 单引号、双引号与空格一起使用;
双引号 双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意Oracle将严格区分大小写,否则Oracl都默认大写。
单引号、双引号、字符串
Oracle10g之前,字符串中出现单引号,可以用两个单引号来表示一个单引号,相当于转义。例子: select 'I''m a String!' from dual; -- 更多单引号的例子 select '''' from dual; -- 查询结果 表示一个单引号 select '一个单引号''' from dual; select '两个单引号''''' from dual;
--双引号在字符串中不受影响。 select '"' from dual;-- 一个双引号 select '一个双引号"' from dual; select '"两个双引号"' from dual;
从oracle10g开始,可以运用分隔符<>,[],{}来处理括起来的字符串,用法:前缀q'[string]'。分隔符中括起来的字符串中可以包含单/双引号,不用再转义。类似Python中的raw字符串: 官方解释:Use The Quote(q) operator and delimiter to allow the use of a single quotation mark with the literal character string in the SELECT clause. --- 单引号 select q'[I'm a String!]' from dual; select q'[I'''''m a String!]' from dual; --- 双引号 select q'[I"m a String!]' from dual; select q'[I"""""m a """"String!""""]' from dual;
Oracle 另一个转义关键字escape用在LIKE表达式中,常用来处理_或$。它们在表达式中表示特殊含义,需要转义表示就需要查找这个字符本身而不是把它当通配符用: select COL1 from TAB1 where COL1 like '%_io_%' escape '';
escape后面接任意字符比如常用的# @ &,紧接着这个字符后面的字符将失去通配符的功能。