oracle 10g函數大全--字符型函數


ASCII(x1)
【功能】:返回字符表達式最左端字符的ASCII 碼值。
【參數】:x1,字符表達式
【返回】:數值型
【示例】
SQL> select ascii('A') A,ascii('a') a,ascii(' ') space,ascii('示') hz from dual;

A         A          SPACE        hz
--------- --------- --------- ---------
65        97         32         51902

【說明】在ASCII()函數中,純數字的字符串可不用‘’括起來,但含其它字符的字符串必須用‘’括起來使用,否則會出錯。
  如果最左端是漢字,只取漢字最左半邊字符的ASCII 碼

【互反函數】:chr()
CHR(n1)
【功能】:將ASCII 碼轉換為字符。
【參數】:n1,為0 ~ 255,整數
【返回】:字符型
【示例】
SQL> select chr(54740) zhao,chr(65) chr65 from dual;

ZH C
-- -
趙 A

【互反函數】:ASCII

CONCAT(c1,c2)
【功能】連接兩個字符串
【參數】c1,c2 字符型表達式
 
【返回】字符型

同:c1||c2

【示例】
 select concat('010-','88888888')||'轉23' 高乾競電話 from dual;

高乾競電話
----------------
010-88888888轉23

INITCAP(c1)
【功能】返回字符串並將字符串的第一個字母變為大寫,其它字母小寫;
【參數】c1字符型表達式
 
【返回】字符型

【示例】
 SQL> select initcap('smith abc aBC') upp from dual;

UPP
-----
Smith Abc Abc

LOWER(c1)
【功能】:將字符串全部轉為小寫
【參數】:c1,字符表達式
【返回】:字符型
【示例】
SQL> select lower('AaBbCcDd')AaBbCcDd from dual;

AABBCCDD
--------
aabbccdd

【同類】UPPER()將字符串全部轉為大寫。

UPPER(c1)
【功能】將字符串全部轉為大寫
【參數】c1,字符表達式
【返回】字符型
【示例】
SQL> select upper('AaBbCcDd') upper from dual;

UPPER
--------
AABBCCDD

【同類】LOWER()將字符串全部轉為小寫

NLS_INITCAP(x[,y])
【功能】返回字符串並將字符串的第一個字母變為大寫,其它字母小寫;
【參數】x字符型表達式
【參數】Nls_param可選,
查詢數據級的NLS設置:select * from nls_database_parameters;

例如:
指定排序的方式(nls_sort=) 。
nls_sort=SCHINESE_RADICAL_M(部首、筆畫)
nls_sort=SCHINESE_STROKE_M(筆畫、部首SCHINESE_PINYIN_M(拼音))

【返回】字符型

【示例】
 select nls_initcap('ab cde') "test",
nls_initcap('a c b d e','nls_sort= SCHINESE_PINYIN_M') "test1" from dual;
返回:Ab Cde, A C B D E

 select nls_initcap('ab cde') "test",
nls_initcap('a c b d e','NLS_LANGUAGE=AMERICAN') "test1" from dual;

NLS_LOWER(x[,y])
【功能】返回字符串並將字符串的變為小寫;
【參數】x字符型表達式
【參數】Nls_param可選,指定排序的方式(nls_sort=) 。
SCHINESE_RADICAL_M(部首、筆畫)
SCHINESE_STROKE_M(筆畫、部首SCHINESE_PINYIN_M(拼音))
 
【返回】字符型

【示例】
 select nls_LOWER('ab cde') "test",nls_LOWER('a c b d e','nls_sort= SCHINESE_PINYIN_M') "test1" from dual;
返回:ab cde,a c b d e

NLS_UPPER(x[,y])
【功能】返回字符串並將字符串的轉換為大寫;
【參數】x字符型表達式
【參數】Nls_param可選,指定排序的方式(nls_sort=) 。
SCHINESE_RADICAL_M(部首、筆畫)
SCHINESE_STROKE_M(筆畫、部首SCHINESE_PINYIN_M(拼音))
 
【返回】字符型

【示例】
 select NLS_UPPER('ab cde') "test",NLS_UPPER('a c b d e','nls_sort= SCHINESE_PINYIN_M') "test1" from dual;
返回:AB CDE,A C B D E

INSTR(C1,C2[,I[,J]])
【功能】在一個字符串中搜索指定的字符,返回發現指定的字符的位置;
【說明】多字節符(漢字、全角符等),按1個字符計算
【參數】
C1    被搜索的字符串
C2    希望搜索的字符串
I     搜索的開始位置,默認為1
J     第J次出現的位置,默認為1
【返回】數值

【示例】select instr('oracle traning','ra',1,2) instring from dual;
返回:9

【示例】select instr('重慶某軟件公司','某',1,1),instrb('重慶某軟件公司','某',1,1) instring from dual;
返回:3,5

INSTRB(C1,C2[,I[,J]])
【功能】在一個字符串中搜索指定的字符,返回發現指定的字符的位置;
【說明】多字節符(漢字、全角符等),按2個字符計算
【參數】
C1    被搜索的字符串
C2    希望搜索的字符串
I     搜索的開始位置,默認為1
J     第J次出現的位置,默認為1
【返回】數值

【示例】select instr('重慶某軟件公司','某',1,1),instrb('重慶某軟件公司','某',1,1) instring from dual;
返回:3,5

LENGTH(c1)
【功能】返回字符串的長度;
【說明】多字節符(漢字、全角符等),按1個字符計算
【參數】C1 字符串
【返回】數值型
【示例】
SQL> select length('高乾競'),length('北京市海錠區'),length('北京TO_CHAR') from dual;

length('高乾競')    length('北京市海錠區')     length('北京TO_CHAR')
----------------- ----------------            ----------------------------
            3             6                               9
LENGTH(c1)
【功能】返回字符串的長度;
【說明】多字節符(漢字、全角符等),按2個字符計算
【參數】C1 字符串
【返回】數值型
【示例】
SQL> select length('高乾競'),lengthB('高乾競') from dual;

length('高乾競')    lengthB('高乾競')   
----------------- ----------------           
            3             6          
LENGTHC(c1).LENGTH2(c1).LENGTH4(c1)
【功能】返回字符串的長度;
【說明】多字節符(漢字、全角符等),按1個字符計算
【參數】C1 字符串
【返回】數值型
【示例】
SQL> select length('高乾競'),length('北京市海錠區'),length('北京TO_CHAR') from dual;

Oracle中的字符函數中,有一類函數是求字符長度的函數,length、lengthB、lengthC、length2、length4幾個函數中比較常用的是length、lengthB。

他們的含義分別是:
Length函數返回字符的個數,使用定義是給定的字符集來計算字符的個數
LENGTHB給出該字符串的byte
LENGTHC使用純Unicode
LENGTH2使用UCS2
LENGTH4使用UCS4

下面使一些例子:
Select length('你好') from dual;  2

Select lengthB('你好'),lengthC('你好'),length2('你好'), length4('你好')  from dual; 

LPAD(c1,n[,c2])
【功能】在字符串c1的左邊用字符串c2填充,直到長度為n時為止
【參數】C1 字符串
n 追加后字符總長度
c2 追加字符串,默認為空格
【返回】字符型
【說明】如果c1長度大於n,則返回c1左邊n個字符
如果如果c1長度小於n,c2和c1連接后大於n,則返回連接后的右邊n個字符

【示例】
SQL> select lpad('gao',10,'*') from dual;

lpad('gao',10,'*')
-----------------
*******gao

不夠字符則用*來填滿

【相似】RPAD()在列的右邊粘貼字符
【相反】LTRIM() 刪除左邊出現的字符串

RPAD(c1,n[,c2])
【功能】在字符串c1的右邊用字符串c2填充,直到長度為n時為止
【參數】C1 字符串
n 追加后字符總長度
c2 追加字符串,默認為空格
【返回】字符型
【說明】如果c1長度大於n,則返回c1左邊n個字符
如果如果c1長度小於n,c1和c2連接后大於n,則返回連接后的左邊n個字符
如果如果c1長度小於n,c1和c2連接后小於n,則返回c1與多個重復c2連接(總長度>=n)后的左邊n個字符

【示例】
SQL> select rpad('gao',10,'*a') from dual;

rpad('gao',10,'*a')
-----------------
gao*a*a*a*

【相似】LPAD()在列的左邊粘貼字符
【相反】RTRIM() 刪除右邊出現的字符串

LTRIM(c1,[,c2])
【功能】刪除左邊出現的字符串
【參數】C1 字符串
c2 追加字符串,默認為空格
【返回】字符型


【示例】
SQL> select LTRIM('   gao qian jing',' ') text from dual;
或:select LTRIM('   gao qian jing') text from dual;

text
-----------------
gao qian jing

【相似】RTRIM()刪除右邊出現的字符串
【相反】LPAD() 在列的左邊粘貼字符

RTRIM(c1,[,c2])
【功能】刪除右邊出現的字符串
【參數】C1 字符串
c2 追加字符串,默認為空格
【返回】字符型

【示例】
SQL> select RTRIM('gao qian jingXXXX','X') text from dual;

text
-----------------
gao qian jing

【相似】LTRIM()刪除左邊出現的字符串
【相反】RPAD() 在列的右邊粘貼字符

REPLACE(c1,c2[,c3])
【功能】將字符表達式值中,部分相同字符串,替換成新的字符串
【參數】
c1   希望被替換的字符或變量 
c2   被替換的字符串
c3   要替換的字符串,默認為空(即刪除之意,不是空格)
【返回】字符型

【示例】
SQL> select replace('he love you','he','i') test from dual;

test
------------------------------
i love you

SOUNDEX(c1)
【功能】返回字符串參數的語音表示形式
【參數】c1,字符型
【返回】字符串

【說明】相對於比較一些讀音相同,但是拼寫不同的單詞是非常有用的。

計算語音的算法: 
  1.保留字符串首字母,但刪除a、e、h、i、o、w、y 
  2.將下表中的數字賦給相對應的字母 
  (1) 1:b、f、p、v 
  (2) 2:c、g、k、q、s、x、z 
  (3) 3:d、t 
  (4) 4:l 
  (5) 5:m、n 
  (6) 6:r 
  3. 如果字符串中存在擁有相同數字的2個以上(包含2個)的字母在一起(例如b和f),或者只有h或w,則刪除其他的,只保留1個 
  4.只返回前4個字節,不夠用0填充 
  示例: 
  soundex('two'),soundex('too'),soundex('to'),他們的結果都是T000 
  soundex('cap'),soundex('cup'),他們的結果都是C100 
  soundex('house'),soundex('horse'),他們的結果都分別是H200,H620

SUBSTR(c1,n1[,n2])
【功能】取子字符串
【說明】多字節符(漢字、全角符等),按1個字符計算
【參數】在字符表達式c1里,從n1開始取n2個字符;若不指定n2,則從第y個字符直到結束的字串.
【返回】字符型

【示例】
SQL> select substr('13088888888',3,8) test from dual;

test
--------
08888888

SUBSTRB(c1,n1[,n2])
【功能】取子字符串
【說明】多字節符(漢字、全角符等),按2個字符計算
【參數】在字符表達式c1里,從n1開始取n2個字符;若不指定n2,則從第y個字符直到結束的字串.
【返回】字符型,如果從多字符右邊開始,則用空格表示。

【示例】
select substr('我手機13012345678',4,11),substrb('我手機13012345678',4,11),substrb('我手機13012345678',3,11) test from dual;
返回:13012345678, 機13012345,手機1301234

TRANSLATE(c1,c2,c3)
【功能】將字符表達式值中,指定字符替換為新字符
【說明】多字節符(漢字、全角符等),按1個字符計算
【參數】
c1   希望被替換的字符或變量 
c2   查詢原始的字符集
c3   替換新的字符集,將c2對應順序字符,替換為c3對應順序字符
如果c3長度大於c2,則c3長出后面的字符無效
如果c3長度小於c2,則c2長出后面的字符均替換為空(刪除)
如果c3長度為0,則返回空字符串。
如果c2里字符重復,按首次位置為替換依據

【返回】字符型

【示例】
select TRANSLATE('he love you','he','i'),
TRANSLATE('重慶的人','重慶的','上海男'),
TRANSLATE('重慶的人','重慶的重慶','北京男士們'),
TRANSLATE('重慶的人','重慶的重慶','1北京男士們'),
TRANSLATE('重慶的人','1重慶的重慶','北京男士們') from dual;
返回:i love you,上海男人,北京男人,1北京人,京男士人

TRIM(c1 from c2)
【功能】刪除左邊和右邊出現的字符串
【參數】C2 刪除前字符串
c1 刪除字符串,默認為空格
【返回】字符型

【示例】
 select TRIM('X' from 'XXXgao qian jingXXXX'),TRIM('X' from 'XXXgaoXXjingXXXX') text from dual;
返回:gao qian jing		gaoXXjing

【相似】LTRIM()刪除左邊出現的字符串  RTRIM()刪除右邊出現的字符串


免責聲明!

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



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