1. 程式人生 > >1、Oracle PL/SQL中的字串及函式介紹

1、Oracle PL/SQL中的字串及函式介紹

Oracle中常用的字串型別有:固定長度(CHAR等)、可變長度(VARCHAR2等)和大物件(CLOB)三類。CHAR為固定的長度字串,而VARCHAR2是可變長度的字串,理論長度32,767。對於CHAR型別,如果設定小於CHAR長度的值,則Oracle會自動用空格填充的。CLOB型別長度最大為128TB。

         Oracle中常用的字串操作函式(同樣可以用於表名操作)包括:

1.LOWER(string) 將輸入的字串轉換成小寫

2.UPPER(string) 將輸入的字串轉換成大寫

3.INITCAP(string) 將輸入的字串每個單詞的首字母轉換成大寫。

4.連線符(||),將兩個字串用||連線起來,除此之外還可以使用Concat函式來連線字串。例:select CONCAT(City,country) from Table

5.LPAD和RPAD,左填充函式和右填充函式。允許在列的左[右]邊填充一組字元。例:RPAD(city,20,'.'),如果ciy的值沒有小於長度20的話,則用'.'在右邊補齊,補到20個,如果是用空格補齊,看上去就是像右對齊一樣。

6.LTRIM,RTRIM和TRIM,他們的作用是從字串的左邊,右邊,左右兩邊刪除不需要的字元,預設時刪除空格。

格式:RTRIM、LTRIM(字串,'刪除字符集') 第一個引數就是要進行刪除的字元,第二個引數是一個字符集。

7.LENGTH 獲取字串有多長,即字串中有多少個字元。PS:不能對一個使用LONG資料型別的列使用LENGTH之類的函式。

8.SUBSTR(string,start [,count])提取出string一個子集,start開始位置,count提取長度,不指定count時,預設提取到該字串的尾部。start同時也可以指定為負數,指定為正數的時候是從字串的起始位置開始算(左邊),指定負數時,是從末尾位置算(右邊)。PS:負數不能使用於Char資料型別,因為Char是固定長度的,所以將使用空格填充他們的值,直到擴充套件到列的全長。

9. INSTR(string,set[,start [,occurrence ] ])返回指定的字串所在的位置。如果指定start,oracle則跳過前面所有字串到該位置開始搜尋,occurence,是強迫instr跳過前幾次與字串匹配,給出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。例 instr('ABACAAA','A',2,2) 從ABACAAA中匹配A這個字串,從2個位置開始匹配,匹配第2次A所在的位置。PS:如果set中不止有一個字元而是有幾個字元組成的,則INSTR給出該字符集中的第一個字元的位置。

10.Chr和ascii函式在即席查詢中很少使用。Chr把數值轉換成等價的ascii字串 例:select chr(70) fromdual。ascii函式執行的結果剛好是相反的,傳遞給他字串,它將轉換成對應的數值(只轉換第一個字串),如果需要同時轉換多個字串可以使用DUMP函式 DUMP(string)。

其它函式:

11. INSTRB(x)和INSTR類似,只不過返回值是Byte型別。

12. LENGTHB(x)和LENGTH類似,只不過返回值是Byte型別。

13. SUBSTRB(x) 和SUBSTR類似,只不過返回值是Byte型別。

14. NANVL(x, value)同NaN(Not aNumber)比較,如果是,返回value值;如果不是返回x。

15. NLSSORT(x)更改字串排序的方法,必須用在其它NLS函式之前。

16. NLS_INITCAP(x)同INITCAP(x)一樣,只不過使用NLSSORT指定的字串排序方法。

17. NLS_LOWER(x) 同LOWER (x)一樣,只不過使用NLSSORT指定的字串排序方法。

18. NLS_UPPER(x) 同UPPER (x)一樣,只不過使用NLSSORT指定的字串排序方法。

19. NVL(x, value)用於判斷字串x是否為null並返回指定值value。如果x是null,返回value;如果不是,返回x。

20. NVL2(x, value1, value2) 用於判斷字串x是否為null並返回指定值value1或value2。如果x是null,返回value1;如果不是,返回value2。

21. REPLACE(x, search_string,replace_string)搜尋x尋找search_string替換為replace_string。

22. SOUNDEX(x)返回一個包含x發音的字串。

引用: