oracle儲存過程中單引號及字串拼接處理

it_newbalance發表於2016-05-20
oracle儲存過程中單引號及字串拼接處理
 
在ORACLE中,單引號有兩個作用,一是字串是由單引號引用,二是轉義。單引號的使用是就近配對,即就近原則。而在單引號充當轉義角色時相對不好理解
 
1、從第二個單引號開始被視為轉義符,如果第二個單引號後面還有單引號(哪怕只有一個)。     
select '''' from dual     ----output:'
 解釋:第二個單引號被作為轉義符,第三個單引號被轉義,可將sql寫成這樣更好理解:
select ' '' ' from dual ----output:'
 
2、連線符‘||’導致了新一輪的轉義:連線符號‘||’左右的單引號沒有任何的關係,除非‘||’是作為字串的一部分(這在動態SQL中很常見)。
select 'name'||'''' from dual ----output:name' 
理解:||後面的作為一個字串,即前後是',中間又是一個密集型單引號串'',因此第一個為轉義功能
select 'name''''' from dual ----output:name''
理解:第一個和最後一個單引號作為字串引用符,中間四個單引號兩兩轉義  。
 
在舉幾個簡單例子:
 
一個單引號,是最正常的情況,比如:'asdfas',這代表一個字串,顯示的內容是 asdfas  ;
 
兩個單引號,一般成對出現在一個單引號之內,表示一個單引號之內的單引號,比如
'sdfs''123''dfsdf',這種字串顯示的時候就是 sdfs'123'dfsdf
 
三個或四個單引號的情況是在一個和兩個的情況之上發展出來的,比如'asd'''||輸入值||'''',它顯示的時候內容就是:
asd'輸入值'。
(把一對兩個單引號分開了,一部分在||之前,一部分在||之後)
(後面四個單引號分開看,中間兩個是一對--代表一對單引號之內的一個單引號,外邊兩個是一對--代表一對單引號)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24558279/viewspace-2103971/,如需轉載,請註明出處,否則將追究法律責任。

相關文章