oracle轉(zhuǎn)義符有:1、單引號,可以引用字符串或?qū)ψ陨磙D(zhuǎn)義;2、雙引號,將非法的格式符包裝起來;3、and符號,接連兩個轉(zhuǎn)義自身;4、Escape,指定一個非特殊符號為轉(zhuǎn)義符。
oracle轉(zhuǎn)義符有:
1,單引號
在ORACLE中單引號有兩個作用:1)引用字符串;2)對自身轉(zhuǎn)義。
引用字符串時,單引號是成對出現(xiàn)的;而對自身的轉(zhuǎn)義,也必定是雙數(shù)的,所以,一個sql語句中,單引號必定是成對的.
Select?'abc'?a,''?b,?''''?c,?'?''?'?d?From?Dual;
復雜轉(zhuǎn)義字符串可用連接符||拆分,便于理解。連接符號‘||’左右的單引號沒有任何的關系,除非‘||’是作為字符串的一部分(這在動態(tài)SQL中很常見)。
Select?'name'?||?''''''?a,?'name'''''?b?From?Dual; Output:name'' name''
2,雙引號
1)一般來說,字符串中的雙引號僅僅被當作一個普通字符進行處理。
此時,雙引號不需要成對出現(xiàn):
Select?'hh24"小時""mi""分"""ss"秒"'?Results?From?Dual; Output:hh24"小時""mi""分"""ss"秒"
2)當出現(xiàn)在to_char的格式字符串中時,雙引號有特殊的作用,就是將非法的格式符包裝起來,避免出現(xiàn)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),或者接連兩個&&(轉(zhuǎn)義自身)
Select?Chr(38)?a,?'Tom&&Jerry'?b,?'Gun?''N?Roses'?c?From?Dual; Output:&????Tom&Jerry????Gun?'N?Roses
4, Escape(指定轉(zhuǎn)義符)
指定一個非特殊符號為轉(zhuǎn)義符,多用在通配符轉(zhuǎn)義
Select?Table_Name?From?User_Tables?Where?Table_Name?Like?'TB=_%=_%'?Escape?'='; Output:TB_STUDENT_SCORE--篩選以TB開頭,中間有兩個_的表名
相關學習推薦:oracle數(shù)據(jù)庫學習教程