共计 1045 个字符,预计需要花费 3 分钟才能阅读完成。
概述
单引号用来标记字符串
双引号用来标记识别对象名
以下使用会比较绕:
字符串中出现单引号、双引号;
表或字段等对象的别名 (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 后面接任意字符比如常用的# \ @ &,紧接着这个字符后面的字符将失去通配符的功能。
更多 Oracle 相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
: