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'' 理解:第一個和最后一個單引號作為字符串引用符,中間四個單引號兩兩轉義。   
 
 3.  舉幾個簡單例子:   一個單引號,是最正常的情況,比如: 'asdfas' ,這代表一個字符串,顯示的內容是 asdfas  ;
   兩個單引號,一般成對出現在一個單引號之內,表示一個單引號之內的單引號,比如  'sdfs' '123' 'dfsdf' ,這種字符串顯示的時候就是 sdfs '123' dfsdf
   三個或四個單引號的情況是在一個和兩個的情況之上發展出來的,比如 'asd' '' ||'輸入值'|| '' '' ,它顯示的時候內容就是: asd '輸入值'
  (把一對兩個單引號分開了,一部分在||之前,一部分在||之后) (后面四個單引號分開看,中間兩個是一對 --代表一對單引號之內的一個單引號,外邊兩個是一對--代表一對單引號
 
 4. 舉例如下:
  z:='alter session set time_zone='''||WET||''''
  alter session set time_zone='WET'
 


免責聲明!

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



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