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