Oracle轉義符


1,單引號

在ORACLE中單引號有兩個作用:1)引用字符串;2)對自身轉義。
引用字符串時,單引號是成對出現的;而對自身的轉義,也必定是雙數的,所以,一個sql語句中,單引號必定是成對的.

Select 'abc' a,'' b, '''' c, ' '' ' d From Dual;

復雜轉義字符串可用連接符||拆分,便於理解。連接符號‘||’左右的單引號沒有任何的關系,除非‘||’是作為字符串的一部分(這在動態SQL中很常見)。

Select 'name' || '''''' a, 'name''''' b From Dual;
Output:name''  name''

2,雙引號
1)一般來說,字符串中的雙引號僅僅被當作一個普通字符進行處理。
此時,雙引號不需要成對出現:

Select 'hh24"小時""mi""分"""ss"秒"' Results From Dual;
Output:hh24"小時""mi""分"""ss"秒"

2)當出現在to_char的格式字符串中時,雙引號有特殊的作用,就是將非法的格式符包裝起來,避免出現ORA-01821: date format not recognized錯誤。
也就是說,去掉雙引號和其包含的字符后,剩下的應該是一個合法的格式串。
to_char在處理格式字符串時,會忽略雙引號:

Select To_Char(Sysdate, 'hh24"小時"mi"分"ss"秒"') As "當前時間/時分秒"  From Dual;
Output:09小時05分08秒 --別名中也有此應用

格式串為'hh24"小時"mi"分"ss"秒"';
去掉雙引號部分后,剩下的是'hh24miss',是一個合法的格式串。
不過即使真不知道雙引號的這個用法,也可以這樣來處理,雖然麻煩一點:

Select To_Char(Sysdate, 'hh24') || '小時' || To_Char(Sysdate, 'mi') || '分' || To_Char(Sysdate, 'ss') || '秒' As Result From Dual;
Output:09小時05分08秒 

3,&(and符號) 

用來識別/設置自定義變量,后需跟變量名;如需作為字符使用,需使用Chr(38),或者接連兩個&&(轉義自身)

Select Chr(38) a, 'Tom&&Jerry' b, 'Gun ''N Roses' c From Dual;
Output:&    Tom&Jerry    Gun 'N Roses

4, Escape(指定轉義符)

指定一個非特殊符號為轉義符,多用在通配符轉義

Select Table_Name From User_Tables Where Table_Name Like 'TB=_%=_%' Escape '=';
Output:TB_STUDENT_SCORE--篩選以TB開頭,中間有兩個_的表名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM