Oracle函式 字元函式

2021-08-19 16:41:04 字數 4506 閱讀 6926

ascii(n)函式:返回字串的ascii碼(當輸入為字串時返回第乙個字元的ascii碼)

select ascii('abc') from dual;

結果:97

chr(n)函式:返回對應ascii碼的字元(n必須為數字型別)

select chr(97) from dual;

結果:a

concat(n,m)函式:連線n和m,n和m可以試字元,也可以是字串。作用和「||」一樣。

select concat('hello','world') from dual;

結果:helloworld

length(n)函式:返回字元或字串的長度

select length('hello') from dual;

結果:5

vsize(value)函式:獲得value的內部表示的位元組數.如果value是null,結果是null.

select vsize('hello')from dual;

結果:5

dump(expr[,return_fmt[,start_position][,length]])函式:用於返回表示式所對應的資料型別**,長度,以及內部格式。當完全沒有引數時,直接返回null。

expr:這個引數是要進行分析的表示式(數字或字串等,可以是各個型別的值)

return_fmt:指返回引數的格式,有5種用法:

1)8:以8進製返回結果的值

2)10:以10進製返回結果的值(預設)

3)16:以16進製制返回結果的值

4)17:以單字元的形式返回結果的值

5)1000:以上4種加上1000,表示在返回值中加上當前字符集

start_position:開始進行返回的字元位置

length:需要返回的字元長度

select dump('hello',1010) from dual;

結果:typ=96 len=5 characterset=zhs16gbk: 72,101,108,108,111

ltrim(chr,trim_str)函式:去掉字串chr左邊包含的trim_str字串中的任何字元,直到出現乙個不包含在trim_str中的字元為止。trim_str可選,預設截去空格

select ltrim('**a***hello***%','*a') from dual;

結果:hello***%

rtrim(chr,trim_str)函式:去掉字串chr右邊包含的trim_str字串中的任何字元,直到出現乙個不包含在trim_str中的字元為止

select rtrim('**a***hello***%','%*') from dual;

結果:**a***hello

trim([leading|trailing|both][trim_str  from]chr)函式:trim_str可選,預設截去空格;leading:指明僅僅將字串的字首字元刪除,trailing:指明僅僅將字串的尾隨字元刪除,預設為both,刪除兩邊字元。

select trim(both'='from'=hello=') from dual;

結果:hello

lpad(chr1,n,[char2])函式:在chr1左邊填充字元chr2,使得字元總長度為n。chr2可選,預設為空格;當chr1字串長度大於n時,則從左邊擷取chr1的n個字元顯示。

select lpad('ab',5,'12') from dual; 

結果:121ab

rpad(chr1,n,[char2])函式:在chr1右邊填充字元chr2,使得字元總長度為n。chr2可選,預設為空格;當chr1字串長度大於n時,則從左邊擷取chr1的n個字元顯示。

select rpad('ab',5,'12') from dual; 

結果:ab121

initcap(n)函式:將字串n中每個單詞首字母大寫。

select initcap('abcde') from dual;

結果:abcde

lower(n)函式:將n轉為小寫

select lower('hello') from dual;

結果:hello

upper(n)函式:將n轉為大寫

select upper('hello') from dual;

結果:hello

nls_initcap(chr[,nlsparams])函式:將chr首字母大寫。nlsparams指定了不同於該會話預設值的不同排序序列。如果不指定引數,則功能和initcap相同。nlsparams可以使用的形式是:『nls_sort=sort』 這裡sort制訂了乙個語言排序序列。

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;

結果:ab cd

nls_lower(string[,nlsparams])函式:返回字串中的所有字母都是小寫形式的string。不是字母的字元不變。nlsparams引數的形式與用途和nls_initcap中的nlsparams引數是相同的。如果nlsparams沒有被包含,那麼nls_lower所作的處理和lower相同。

select nls_lower('ab cd','nls_sort=schinese_stroke_m') from dual;

結果:ab cd

nls_upper(string[,nlsparams])函式:返回字串中的所有字母都是大寫的形式的string。不是字母的字元不變。nlsparams引數的形式與用途和nls_initcap中的相同。如果沒有設定引數,則nls_upper功能和upper相同。

select nls_upper('ab cd','nls_sort=schinese_stroke_m') from dual;

結果:ab cd

nlssort(col[,nls_param])函式:根據nls_param指定的方式對col欄位進行排序

select * from test order by nlssort(課程,'nls_sort=schinese_pinyin_m')

select instr('hello world','o',6,1) from dual;

結果:8

substr(chr,start,length)函式:是從給定的字元表示式或備註欄位中返回乙個子字串,start代表開始位置,擷取length個字元,預設length,預設到結尾

select substr('abcde',2,3) from dual;

結果:bcd

replace(chr,old,new)函式:在chr中查詢old,並替換成new,當old為null時,返回chr;當new為null時,返回chr中擷取掉old部分的字串。

select replace('abcde','cd','123')from dual;

結果:ab123e

translate(string,from_str,to_str)函式:將字元string按照from_str與to_str的對應規則進行處理,返回將所出現的from_str中的每個字元替換為to_str中的相應字元以後的string. translate是replace所提供的功能的乙個超集.如果from_str比to_str長,那麼在from_str中而不在to_str中而外的字元將從string中被刪除,因為它們沒有相應的替換字元. to_str不能為空.oracle把空字串認為是null,並且如果translate中的任何引數為null,那麼結果也是null.

select translate('abcde','cd','123') from dual

結果:ab12e

soundex(string)函式:返回string的聲音表示形式.這對於比較兩個拼寫不同但是發音類似的單詞而言很有幫助,如果字元發音相同,則返回的結果會一致.

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');

結果:weather

wether

oracle函式 字元函式

這是本人在學習中的部分筆記總結 1.replace 顯示時替換 select replace ename,a 中國 from emp 2.instr c1,c2,i,j 找指定字元出現的位置 c1原字串 c2指定字串 i起始位置 j第n次出現 select instr oracle traing r...

Oracle函式 字串函式

1.1 計算字串長度的函式 length str 1.2 合併字串函式concat s1,s2 concat s1,s2 返回結果為連線引數產生的字串 1.3 字串搜尋函式instr s,x instr s,x 返回x字元在字串s的位置 1.4 字母大小寫轉換函式lower str 和upper s...

oracle的單行函式 字元函式

sql函式 sql函式是oracle資料庫的內建函式,並且可用於各種sql語句 sql函式包括單行函式和多行函式。字元函式 字元函式的輸入引數為字元型別,其返回值是字元型別或數字型別。大小寫控制函式 upper 用於將字串轉換為大寫格式upper char lower 用於將字串轉換為小寫格式low...