hyang0

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

概述

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

以下使用会比较绕:

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

参考:
[1]: https://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html \'Oracle中的 单引号 和 双引号\'

分类:

技术点:

相关文章:

  • 2021-12-10
  • 2022-02-09
  • 2022-02-01
  • 2022-01-24
  • 2021-12-31
  • 2021-12-31
  • 2021-12-31
  • 2021-12-31
猜你喜欢
  • 2021-12-31
  • 2021-12-31
  • 2021-12-31
  • 2021-10-27
  • 2021-07-31
相关资源
相似解决方案