Oracle 单引号 双引号 转义符 分隔符

pixel 2019-03-20

概述

单引号用来标记字符串
 双引号用来标记识别对象名

以下使用会比较绕:

字符串中出现单引号、双引号;
 表或字段等对象的别名(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后面接任意字符比如常用的# \ @ &,紧接着这个字符后面的字符将失去通配符的功能。

相关推荐