Oracle中的單引號與雙引號

來源:互聯網
上載者:User

那天使用Oracle的時候,發現單、雙引號的使用是有區別的,就上網查了一些資料,自己做了一些總結:

雙引號:建立對象的時候,對象名、欄位名加雙引號,則表示Oracle將嚴格區分大小寫,否則Oracl都預設大寫。

單引號:這個加了單引號的欄位是一個字類似字串,並不區分大小寫。

單引號用於標識字元與數位區別,當指定字串文本時,必須用單引號將字串文本引住。

Oracle10g之前,假如字串文本裡含有單引號,那麼必須運用兩個單引號示意。例如:I'm a String! 字串文本則為:string_var:='I''m a String!'

在oracle10g中可以運用其它分隔字元(<>,[],{}等),留心,運用這些分隔字元時,不僅要在分隔字元前後加單引號,還要帶有首碼q.例:string_var:=q'[I''m a String!]';

例如

select * from table_name where id=1;這種代表查詢的是數字

  select * from table_name where id='1';這種代表查詢的是字元

  假如你有個表的欄位叫sysdate,因為sysdate屬於oracle中的特有字元,當你要查詢這個欄位的時候,需要這樣寫

  select "sysdate" from table_name;

  如果你這樣寫select 'sysdate' from table_name,那麼你查出來的就是字串,結果是sysdate

單引號在 Oracle 中有三種身份:

1. 用來引用一個字串常量,也就是界定一個字串的開始和結束      2. 轉義符,對緊隨其後出現的字元(單引號)進行轉義      3. 表示它本身,也就是它作為一個字串的一部分而出現在一個字串常量中總結經驗:  1. 出現在運算式開頭和結尾的這兩個單引號的含義肯定是表示引用一個字串,界定字串的開始和結束  2. 如果單引號出現在運算式中間(即非運算式開頭和結尾的單引號),且多個單引號之間沒有任何其他字元,那麼當我們從左向右分析時,第一對單引號中的第一個是轉義符,它對緊隨其後的第二個單引號進行轉義,以使第二個單引號作為一個字元出現在一個字串常量中。第二對,第三對,以此類推.......樣本一:

select 'exit''''' from dual

運算式 'exit''''' 中第一個和最後一個單引號表示引用一個字串常量,運算式的剩餘部分從左往右分析。剩餘部分中,遇到的第一個單引號後面緊隨一個單引號,我們將其作為一對,根據樣本一,這一對的解析結果為一個單引號字元本身;然後繼續向右走,又遇到一對緊挨著的單引號,同理,他們的解析結果也是一個單引號字元本身。分析得出這裡的字串常量包含exit和兩個單引號字元,即結果為: result exit''

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.