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的編譯過程了吧。
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的編譯過程了吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.