Oracle中的 單引號 和 雙引號
轉自 http://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html
在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
運用如下的更新語句不可以:update device set dept='select * from message where name='tom' ' ;
處理要領:
update device set dept='select * from message where name=' 'tom' ' where id=3' ;
執行成功。
原來,兩個'' 示意了一個'
單引號在 Oracle 中有三種身份:
1. 用來引用一個字串常量,也就是界定一個字串的開始和結束
2. 轉義符,對緊隨其後出現的字元(單引號)進行轉義
3. 表示它本身,也就是它作為一個字串的一部分而出現在一個字串常量中
當具有不同身份的單引號緊挨著一起出現在 sql 語句中時常常令人迷惑不解,下面我將以自己總結出來的經驗為基礎,結合具體例項來告訴大家如何弄清每個單引號的含義。
總結經驗:
1. 出現在表示式開頭和結尾的這兩個單引號的含義肯定是表示引用一個字串,界定字串的開始和結束
2. 如果單引號出現在表示式中間(即非表示式開頭和結尾的單引號),且多個單引號之間沒有任何其他字元,那麼當我們從左向右分析時,第一對單引號中的第一個是轉義符,它對緊隨其後的第二個單引號進行轉義,以使第二個單引號作為一個字元出現在一個字串常量中。第二隊,第三隊,以此類推......
下面用例項來驗證自己的經驗總結:
示例一:
select '''' from dual;
result '
上圖中,表示式 '''' 中第1、4個單引號表示引用一個字串常量,表示式的剩餘部分我們從左往右分析,由於中間是一對單引號,故此對中的第一個是轉義符,其對第二個進行轉義,使第二個表示單引號本身。分析得出這裡有一個字串常量,其中只有一個單引號字元。sql 語句的執行結果與我們的分析結果一致。
示例二:
select 'exit''''' from dual
result exit''
上圖中,表示式 'exit''''' 中第一個和最後一個單引號表示引用一個字串常量,表示式的剩餘部分我們依然從左往右分析。剩餘部分中,遇到的第一個單引號後面緊隨一個單引號,我們將其作為一對,根據示例一,這一對的解析結果為一個單引號字元本身;然後繼續向右走,又遇到一對緊挨著的單引號,同理,他們的解析結果也是一個單引號字元本身。分析得出這裡的字串常量包含exit和兩個單引號字元。sql 語句的執行結果與我們的分析結果一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-700472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中單引號和雙引號的區別Oracle
- ORACLE 單引號 雙引號Oracle
- oracle 中使用單引號(')和雙引號(")Oracle
- PHP中單引號和雙引號的區別PHP
- Python中 單引號,雙引號和三引號的區別Python
- oracle 裡的單引號與雙引號Oracle
- Oracle中單引號與雙引號的區別分析Oracle
- Linux Shell 中的反引號,單引號,雙引號Linux
- 在ORACLE SQL語句中,單引號和雙引號的使用OracleSQL
- Jquery單引號和雙引號的使用注意jQuery
- PHP中對單引號和雙引號的區別(好文)PHP
- python中單引號,雙引號,多引號區別Python
- Golang的單引號、雙引號與反引號Golang
- shell 指令碼中雙引號、單引號、反引號的區別指令碼
- linux 單引號,雙引號,反引號Linux
- grep 後加單引號、雙引號和不加引號的區別
- linux bash中的引號:單雙引號、反撇號Linux
- js中關於單引號和雙引號的一點用法JS
- asp.net中關於雙引號和單引號的用法ASP.NET
- HTML 單引號與雙引號HTML
- oracle資料庫--Oracle雙引號和單引號的區別小結Oracle資料庫
- 【C進階】14、單引號和雙引號
- 字串中包含單引號和雙引號怎麼處理字串
- 關於 json 單引號和雙引號區別--請使用雙引號JSON
- shell中單引號、雙引號、反引號、反斜槓的區別
- javascript的雙引號和單引號的用法和區別JavaScript
- shell中定義變數用雙引號和單引號以及不用引號的區別變數
- SQL語句中的單引號與雙引號SQL
- Linux中單引號和雙引號的使用方法及注意事項!Linux
- 瞭解 Oracle 中單引號與雙引號的用法,一篇文章教會你!Oracle
- Linux Shell 單引號 雙引號 使用區別Linux
- oracle中單引號的轉譯Oracle
- oracle中單引號的應用Oracle
- webstorm中程式碼新增單引號、雙引號快捷鍵WebORM
- latex的雙引號 ``'
- 插入單引號在oracle和informix中的區別OracleORM
- [譯]JavaScript:將字串兩邊的雙引號轉換成單引號JavaScript字串
- mybatis大於號,小於號,去地址符,單引號,雙引號轉義說明MyBatis