Oracle函数——字符函数
ASCII(n)函數(shù):返回字符串的ASCII碼(當(dāng)輸入為字符串時(shí)返回第一個(gè)字符的ASCII碼)
SELECT ASCII('abc') FROM dual;
結(jié)果:97
CHR(n)函數(shù):返回對應(yīng)ASCII碼的字符(n必須為數(shù)字類型) SELECT CHR(97) FROM dual;
結(jié)果:a
CONCAT(n,m)函數(shù):連接n和m,n和m可以試字符,也可以是字符串。作用和“||”一樣。
SELECT CONCAT('Hello','world') FROM dual;結(jié)果:Helloworld
LENGTH(n)函數(shù):返回字符或字符串的長度
SELECT LENGTH('Hello') FROM dual;結(jié)果:5
VSIZE(value)函數(shù):獲得value的內(nèi)部表示的字節(jié)數(shù).如果value是NULL,結(jié)果是NULL.
select vsize('Hello')from dual;
結(jié)果:5
DUMP(expr[,return_fmt[,start_position][,length]])函數(shù):用于返回表達(dá)式所對應(yīng)的數(shù)據(jù)類型代碼,長度,以及內(nèi)部格式。當(dāng)完全沒有參數(shù)時(shí),直接返回null。
expr:這個(gè)參數(shù)是要進(jìn)行分析的表達(dá)式(數(shù)字或字符串等,可以是各個(gè)類型的值)return_fmt:指返回參數(shù)的格式,有5種用法:
? ? ? ? ? 1)8:以8進(jìn)制返回結(jié)果的值
? ? ? ? ? 2)10:以10進(jìn)制返回結(jié)果的值(默認(rèn))
? ? ? ? ? 3)16:以16進(jìn)制返回結(jié)果的值
? ? ? ? ? 4)17:以單字符的形式返回結(jié)果的值
? ? ? ? ? 5)1000:以上4種加上1000,表示在返回值中加上當(dāng)前字符集
start_position:開始進(jìn)行返回的字符位置
length:需要返回的字符長度
select dump('Hello',1010) from dual;
結(jié)果:Typ=96 Len=5 CharacterSet=ZHS16GBK: 72,101,108,108,111
LTRIM(chr,TRIM_STR)函數(shù):去掉字符串chr左邊包含的TRIM_STR字符串中的任何字符,直到出現(xiàn)一個(gè)不包含在TRIM_STR中的字符為止。TRIM_STR可選,缺省截去空格
SELECT LTRIM('**a***Hello***%','*a') FROM dual;結(jié)果:Hello***%
RTRIM(chr,TRIM_STR)函數(shù):去掉字符串chr右邊包含的TRIM_STR字符串中的任何字符,直到出現(xiàn)一個(gè)不包含在TRIM_STR中的字符為止 SELECT RTRIM('**a***Hello***%','%*') FROM dual;
結(jié)果:**a***Hello
TRIM([LEADING|TRAILING|BOTH][TRIM_STR ?FROM]chr)函數(shù):TRIM_STR可選,缺省截去空格;LEADING:指明僅僅將字符串的前綴字符刪除,TRAILING:指明僅僅將字符串的尾隨字符刪除,默認(rèn)為BOTH,刪除兩邊字符。 SELECT TRIM(both'='FROM'=Hello=') FROM dual;
結(jié)果:Hello
LPAD(chr1,n,[char2])函數(shù):在chr1左邊填充字符chr2,使得字符總長度為n。chr2可選,默認(rèn)為空格;當(dāng)chr1字符串長度大于n時(shí),則從左邊截取chr1的n個(gè)字符顯示。 SELECT LPAD('ab',5,'12') FROM dual;?
結(jié)果:121ab
RPAD(chr1,n,[char2])函數(shù):在chr1右邊填充字符chr2,使得字符總長度為n。chr2可選,默認(rèn)為空格;當(dāng)chr1字符串長度大于n時(shí),則從左邊截取chr1的n個(gè)字符顯示。 SELECT RPAD('ab',5,'12') FROM dual;?
結(jié)果:ab121
INITCAP(n)函數(shù):將字符串n中每個(gè)單詞首字母大寫。
SELECT INITCAP('abcde') FROM dual;
結(jié)果:Abcde
LOWER(n)函數(shù):將n轉(zhuǎn)為小寫
SELECT LOWER('HELLO') FROM dual;
結(jié)果:hello
UPPER(n)函數(shù):將n轉(zhuǎn)為大寫
SELECT UPPER('hello') FROM dual;
結(jié)果:HELLO
NLS_INITCAP(chr[,nlsparams])函數(shù):將chr首字母大寫。nlsparams指定了不同于該會(huì)話缺省值的不同排序序列。如果不指定參數(shù),則功能和INITCAP相同。Nlsparams可以使用的形式是:‘NLS_SORT=sort’ 這里sort制訂了一個(gè)語言排序序列。
nls_sort=SCHINESE_RADICAL_M(部首、筆畫)
nls_sort=SCHINESE_STROKE_M(筆畫、部首)
nls_sort=SCHINESE_PINYIN_M(拼音)
SELECT NLS_INITCAP('ab cd','nls_sort=SCHINESE_STROKE_M') FROM dual;
結(jié)果:Ab Cd
NLS_LOWER(string[,nlsparams])函數(shù):返回字符串中的所有字母都是小寫形式的string。不是字母的字符不變。Nlsparams參數(shù)的形式與用途和NLS_INITCAP中的nlsparams參數(shù)是相同的。如果nlsparams沒有被包含,那么NLS_LOWER所作的處理和LOWER相同。
SELECT NLS_LOWER('AB CD','nls_sort=SCHINESE_STROKE_M') FROM dual;結(jié)果:ab cd
NLS_UPPER(string[,nlsparams])函數(shù):返回字符串中的所有字母都是大寫的形式的string。不是字母的字符不變。nlsparams參數(shù)的形式與用途和NLS_INITCAP中的相同。如果沒有設(shè)定參數(shù),則NLS_UPPER功能和UPPER相同。
SELECT NLS_UPPER('ab cd','nls_sort=SCHINESE_STROKE_M') FROM dual;
結(jié)果:AB CD
NLSSORT(col[,nls_param])函數(shù):根據(jù)nls_param指定的方式對col字段進(jìn)行排序
select * from TEST order by NLSSORT(課程,'nls_sort=SCHINESE_PINYIN_M')
INSTR(string1,string2[,start_position[,nth_appearance]])函數(shù):instr是一個(gè)非常好用的字符串處理函數(shù),幾乎所有的字符串分隔都用到此函數(shù)。返回要截取的字符串string2在源字符串string1中按正向排列得出的位置。start_position和nth_appearance可選,省略默認(rèn)為1;start_position代表開始查找的起始位置,如果此參數(shù)為負(fù),從尾部開始檢索;nth_appearance代表字符串出現(xiàn)的次數(shù)。
SELECT INSTR('Hello world','o',6,1) FROM dual;結(jié)果:8
SUBSTR(chr,start,length)函數(shù):是從給定的字符表達(dá)式或備注字段中返回一個(gè)子字符串,start代表開始位置,截取length個(gè)字符,缺省length,默認(rèn)到結(jié)尾
SELECT SUBSTR('ABCDE',2,3) FROM dual;結(jié)果:BCD
REPLACE(chr,old,new)函數(shù):在chr中查找old,并替換成new,當(dāng)old為null時(shí),返回chr;當(dāng)new為null時(shí),返回chr中截取掉old部分的字符串。
SELECT REPLACE('ABCDE','CD','123')FROM dual;結(jié)果:AB123E
TRANSLATE(string,from_str,to_str)函數(shù):將字符string按照from_str與to_str的對應(yīng)規(guī)則進(jìn)行處理,返回將所出現(xiàn)的from_str中的每個(gè)字符替換為to_str中的相應(yīng)字符以后的string. TRANSLATE是REPLACE所提供的功能的一個(gè)超集.如果from_str比to_str長,那么在from_str中而不在to_str中而外的字符將從string中被刪除,因?yàn)樗鼈儧]有相應(yīng)的替換字符. to_str不能為空.Oracle把空字符串認(rèn)為是NULL,并且如果TRANSLATE中的任何參數(shù)為NULL,那么結(jié)果也是NULL.
Select TRANSLATE('ABCDE','CD','123') from dual
結(jié)果:AB12E
SOUNDEX(string)函數(shù):返回string的聲音表示形式.這對于比較兩個(gè)拼寫不同但是發(fā)音類似的單詞而言很有幫助,如果字符發(fā)音相同,則返回的結(jié)果會(huì)一致.
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values('weather');
SQL> insert into table1 values('wether');
SQL> insert into table1 values('gao');
?select xm from table1 where soundex(xm)=soundex('weather');
結(jié)果:weather
? ? ? wether
總結(jié)
以上是生活随笔為你收集整理的Oracle函数——字符函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。