oracle字元函式

shilei1發表於2013-01-15
lpad 
在Oracle/PLSQL中,lpad函式將左邊的字串填充一些特定的字元, 
其語法格式如下:     
  lpad( string1, padded_length, [ pad_string ] ) 
  其中string1是需要貼上字元的字串 
  padded_length是返回的字串的數量,如果這個數量比原字串的長度要短,lpad函式將會把字串擷取成padded_length; 

  pad_string是個可選引數,這個字串是要貼上到string1的左邊,如果這個引數未寫,lpad函式將會在string1的左邊貼上空格。 
  例如: 
  lpad('tech', 7); 將返回' tech' 
  lpad('tech', 2); 將返回'te' 
  lpad('tech', 8, '0'); 將返回'0000tech' 
  lpad('tech on the net', 15, 'z'); 將返回 'tech on the net' 
  lpad('tech on the net', 16, 'z'); 將返回 'ztech on the net' 

(1在oracle的資料庫裡有個函式 LPAD(String a,int length,String addString). 

              2作用:把addString新增到a的左邊,length 是返回值的長度。 

               3例子 

                  A : SQL> select lpad('test',8,0) from dual; 

                LPAD('TEST',8,0) 
                    ---------------- 
                 0000test 

               B: select lpad('test',8) from dual; 

              LPAD('TEST',8) 
                         -------------- 
               test 注:不寫最後一個引數,函式會預設在返回值左邊加一個空格。 

               C: SQL> select lpad('test',2,0) from dual; 

                LPAD('TEST',2,0) 
                ---------------- 
              te 

              D:SQL> select lpad('test',3) from dual; 

                   LPAD('TEST',3) 
                  -------------- 
                    tes)




nvl 
透過查詢獲得某個欄位的合計值,如果這個值為null將給出一個預設的預設值 

例如: 

select nvl(sum(t.dwxhl),1) 

from tb_jhde t 

就表示如果sum(t.dwxhl) = NULL 就返回 1 


另一個有關的有用方法 

declare i integer 

select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1這樣就可以把獲得的合計值儲存到變數 
i中,如果查詢的值為null就把它的值設定為預設的1 





透過查詢獲得某個欄位的合計值,如果這個值位null將給出一個預設的預設值 
  select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1 
這裡關心的nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那麼返回的值為後面的value 

另一個有關的有用方法 
declare 
i integer 
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1 
這樣就可以把獲得的合計值儲存到變數i中,如果查詢的值為null就把它的值設定為預設的1 



Upper() 
功能將字串中的小寫字母轉換為大寫字母。 
語法Upper( string ) 
引數string:要將其中的小寫字母轉換為大寫字母的字串返回值String。函式執行成功時返回將小寫字母轉換為大寫字母后的字串,發生錯誤時返回空字串("")。如果string引數的值為NULL,Upper()函式返回NULL。 
eg:select  upper('AaCdD')  from dual; 
UPPER('AACDD') 




Replace函式 
描述 

返回一個字串,該字串中指定的子字串已被替換成另一子字串,並且替換髮生的次數也是指定的。 

語法 

Replace(expression, find, replacewith[, start[, count[, compare]]]) 

Replace函式語法有如下幾部分: 

部分 描述 
expression 必需的。字串表示式,包含要替換的子字串。 
find 必需的。要搜尋到的子字串。 
replacewith 必需的。用來替換的子字串。 
start 可選的。在表示式中子字串搜尋的開始位置。如果忽略,假定從1開始。 
count 可選的。子字串進行替換的次數。如果忽略,預設值是 -1,它表明進行所有可能的替換。 
compare 可選的。數字值,表示判別子字串時所用的比較方式。關於其值,請參閱“設定值”部分。 


設定值 

compare引數的設定值如下: 

常數 值 描述 
vbUseCompareOption -1 使用Option Compare語句的設定值來執行比較。 
vbBinaryCompare 0 執行二進位制比較。 
vbTextCompare 1 執行文字比較。 
vbDatabaseCompare 2 僅用於Microsoft Access。基於您的資料庫的資訊執行比較。 


返回值 

Replace的返回值如下: 

如果 Replace返回值 
expression長度為零 零長度字串("")。 
expression為Null 一個錯誤。 
find長度為零 expression的複本。 
replacewith長度為零 expression的複本,其中刪除了所有出現的find 的字串。 
start > Len(expression) 長度為零的字串。 
count is 0 expression.的複本。 


說明 

Replace函式的返回值是一個字串,但是,其中從start所指定的位置開始,到expression字串的結尾處的一段子字串已經發生過替換動作。 
並不是原字串從頭到尾的一個複製。 

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

相關文章