oracle 轉義字符總結

測試sql
select 'oracle'||123 from dual;
select 'oracle'||'123' from dual;
select 'oracle''''''' from dual;
select 'oracle'||'''''' from dual;
select 'oracle||''''''' from dual;
select 'oracle'||'''||' from dual;
select 'oracle'||'''||'ww' from dual;


測試結果

'ORACLE'||123
-------------
oracle123

'ORACLE'||'123'
---------------
oracle123

'ORACLE'''''''
--------------
oracle'''

'ORACLE'||''''''
----------------
oracle''

'ORACLE||'''''''
----------------
oracle||'''

'ORACLE'||'''||'
----------------
oracle'||

2

select 'oracle'||'''||'ww' from dual;
select 'oracle'||123 from dual;
select 'oracle'||'123' from dual;
select 'oracle''''''' from dual;
select 'oracle'||'''''' from dual;
select 'oracle||''''''' from dual;
select 'oracle'||'''||' from dual;
select 'oracle'||'''||'ww' from dual

ORA-00923: 未找到預期 FROM 關鍵字


總結
oracle關於'的處理流程可能是這樣的,第一個進棧作爲字符串的開始標準,其後面的'是不是字符串結束的標示要看這個'的後面是不是',不是則表示該字符串結束,是則表示該'起轉義作用;

陷阱
select 'oracle'||'''||'ww' from dual

ORA-00923: 未找到預期 FROM 關鍵字
關於這個錯誤,它報錯的位置是ww後面的',這很讓人迷惑,按照上面邏輯應該在第一個w報錯纔對呀,您執行一下下面的sql就知道了;
select 'oracle'||'''||'ww from dual;
結果是
WW
---------
oracle'||

從這裏可以看出來它的作用還有oracle對sql的編譯過程了吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章