Oracle 多個單引號的處理
阿新 • • 發佈:2019-02-09
一、發現問題
幾個問題:
SELECT 'N' from dual;
SELECT '''N''' from dual;
SELECT '&a_b' from dual;
SELECT '''12&2''' from dual;
二、分析問題
1.在ORACLE中,單引號有兩個作用,一是字串是由單引號引用,二是轉義。單引號的使用是“就近原則”。eg:單引號引用 SQL> SELECT 'N' from dual;
'N'
---
N
eg:轉義 SQL> SELECT '''N''' from dual;
'''N'''
-------
'N'
如果第二個單引號後面緊跟著單引號,此時第二個單引號充當轉義;同理,第四個單引號後面又緊跟著單引號,此時第四個單引號充當轉義。
SQL> SELECT ' '' ' FROM DUAL;
''''
------
'
SQL> SELECT '' '' FROM DUAL;
SELECT '' '' FROM DUAL
*
ERROR 位於第 1 行:
ORA-00923: 未找到預期 FROM 關鍵字
轉義是密集的,如果單引號出現在轉義的位置上,而該單引號後面緊跟的不是單引號,這個時候單引號就不在充當轉義的角色。
2.
&把a_b轉移成變數。。。