概述

單引號用來標記字串

雙引號用來標記識別物件名

以下使用會比較繞:

字串中出現單引號、雙引號;

表或欄位等物件的別名(alias)中出單引號、雙引號;

單引號、雙引號與空格一起使用;

雙引號

  1. 雙引號的作用是:假如建立物件的時候,物件名、欄位名加雙引號,則示意Oracle將嚴格區分大小寫,否則Oracl都預設大寫。

單引號、雙引號、字串

Oracle10g之前,字串中出現單引號,可以用兩個單引號來表示一個單引號,相當於轉義。例子:

  1. select 'I''m a String!' from dual;
  2. -- 更多單引號的例子
  3. select '''' from dual; -- 查詢結果 表示一個單引號
  4. select '一個單引號''' from dual;
  5. select '兩個單引號''''' from dual;
  6. --雙引號在字串中不受影響。
  7. select '"' from dual;-- 一個雙引號
  8. select '一個雙引號"' from dual;
  9. select '"兩個雙引號"' from dual;

從oracle10g開始,可以運用分隔符<>,[],{}來處理括起來的字串,用法:字首q'[string]'。分隔符中括起來的字串中可以包含單/雙引號,不用再轉義。類似python中的raw字串:

  1. 官方解釋: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.
  1. --- 單引號
  2. select q'[I'm a String!]' from dual;
  3. select q'[I'''''m a String!]' from dual;
  4. --- 雙引號
  5. select q'[I"m a String!]' from dual;
  6. select q'[I"""""m a """"String!""""]' from dual;

Oracle 另一個轉義關鍵字escape用在LIKE表示式中,常用來處理_$。它們在表示式中表示特殊含義,需要轉義表示就需要查詢這個字元本身而不是把它當萬用字元用:

  1. select COL1 from TAB1 where COL1 like '%\_io\_%' escape '\';

escape後面接任意字元比如常用的# \ @ &,緊接著這個字元後面的字元將失去萬用字元的功能。

參考:

[1]: https://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html 'Oracle中的 單引號 和 雙引號'