oracle中單引號的轉譯
oracle多個單引號的處理
在ORACLE中,單引號有兩個作用,一是字串是由單引號引用,二是轉義。單引號的使用是就近配對,即就近原則。而在單引號充當轉義角色時相對不好理解。
下面轉載
1、從第二個單引號開始被視為轉義符,如果第二個單引號後面還有單引號(哪怕只有一個)。
SQL> SELECT '''' FROM DUAL;
''
--
'
為了證實結果是被第二個單引號轉義的第三個單引號(既:SELECT '''' FROM DUAL;),我們做如下兩個測試:
SQL> SELECT ''' FROM DUAL;
ERROR:
ORA-01756: 括號內的字串沒有正確結束
相信大家對這樣的錯誤不陌生吧
SQL> SELECT 'SDLF FROM DUAL;
ERROR:
ORA-01756: 括號內的字串沒有正確結束
也就是說,當第二個單引號充當轉義角色,第三個單引號被轉義,(既:select '' ' from dual;)自然就缺少與第一個單引號匹配的單引號了,出現了孤立的單引號
下面的兩個實驗就更加支援了上面的結論。
SQL> SELECT ' '' ' FROM DUAL;
''''
------
'
SQL> SELECT '' '' FROM DUAL;
SELECT '' '' FROM DUAL
*
ERROR 位於第 1 行:
ORA-00923: 未找到預期 FROM 關鍵字
對於第一個:SELECT ' '' ' FROM DUAL;
對於第二個:不存在轉義。
上面的這兩個實驗其實也是單引號轉義與非轉義的一個性質:轉義是密集的,也就是說,如果單引號出現在轉義的位置上,而該單引號後面緊跟(緊跟的定義為:兩個單引號之間是零距離的)的不是單引號,這個時候單引號就不在充當轉義的角色,而是與它前面的配對。
2、連線符‘||’導致了新一輪的轉義:連線符號‘||’左右的單引號沒有任何的關係,除非‘||’是作為字串的一部分(這在動態SQL中很常見)。
SQL> SELECT 'ORACLE'||'''' FROM DUAL;
'ORACLE'||''
----------
ORACLE'
個人理解,'ORACLE'||'''' 後面的“''''”應該認為是一個字串(即前後單引號,中間是“''”串,而中間又是密集單引號,因此第一個為轉義功能)
SQL> SELECT 'ORACLE''''' FROM DUAL;
'ORACLE'''''
------------
ORACLE''
對於第一個,前兩個單引號配對,後面四個單引號按照上面的第一條原則分配,既:SELECT 'ORACLE'||'''' FROM DUAL;
對於第二個,由於第二個單引號後面存在單引號,所以就不與第一個配對,而是充當了轉義的角色。既:SELECT 'ORACLE''''' FROM DUAL;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24237320/viewspace-1059710/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中的 單引號 和 雙引號Oracle
- Oracle中單引號和雙引號的區別Oracle
- oracle中單引號的應用Oracle
- Oracle中單引號與雙引號的區別分析Oracle
- [譯]JavaScript:將字串兩邊的雙引號轉換成單引號JavaScript字串
- ORACLE 單引號 雙引號Oracle
- oracle 裡的單引號與雙引號Oracle
- Linux Shell 中的反引號,單引號,雙引號Linux
- oracle 中使用單引號(')和雙引號(")Oracle
- PHP中單引號和雙引號的區別PHP
- shell 指令碼中雙引號、單引號、反引號的區別指令碼
- Python中 單引號,雙引號和三引號的區別Python
- linux bash中的引號:單雙引號、反撇號Linux
- 插入單引號在oracle和informix中的區別OracleORM
- python中單引號,雙引號,多引號區別Python
- Oracle q' 簡化單引號轉義介紹Oracle
- shell中單引號、雙引號、反引號、反斜槓的區別
- 在ORACLE SQL語句中,單引號和雙引號的使用OracleSQL
- oracle資料庫--Oracle雙引號和單引號的區別小結Oracle資料庫
- 瞭解 Oracle 中單引號與雙引號的用法,一篇文章教會你!Oracle
- PHP中對單引號和雙引號的區別(好文)PHP
- Golang的單引號、雙引號與反引號Golang
- zsh 命令在 alias 中如何轉義 ' 字元(單引號)字元
- js中關於單引號和雙引號的一點用法JS
- asp.net中關於雙引號和單引號的用法ASP.NET
- shell中定義變數用雙引號和單引號以及不用引號的區別變數
- linux 單引號,雙引號,反引號Linux
- 字串中包含單引號和雙引號怎麼處理字串
- HTML 單引號與雙引號HTML
- oracle儲存過程中單引號及字串拼接處理Oracle儲存過程字串
- oracle中字串中使用單引號方法Oracle字串
- Jquery單引號和雙引號的使用注意jQuery
- SQL語句中的單引號與雙引號SQL
- 有關PHP、HTML單引號、雙引號轉義以及轉成HTML實體的那些事!PHPHTML
- mybatis大於號,小於號,去地址符,單引號,雙引號轉義說明MyBatis
- grep 後加單引號、雙引號和不加引號的區別
- Linux中單引號和雙引號的使用方法及注意事項!Linux
- 單引號在動態SQL中的處理SQL