概述
單引號用來標記字符串
雙引號用來標記識別對象名
以下使用會比較繞:
字符串中出現單引號、雙引號;
表或字段等對象的別名(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中的 單引號 和 雙引號'