在oracle中,可以使用to_number()函數(shù)來將數(shù)據(jù)轉(zhuǎn)為數(shù)字類型,該函數(shù)可以將字符串轉(zhuǎn)換為數(shù)值型的格式,語法“to_number(varchar2 or char,'格式')”。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。
在oracle中,可以使用to_number()函數(shù)來將數(shù)據(jù)轉(zhuǎn)為數(shù)字類型。
to_number()函數(shù)是oracle中常用的類型轉(zhuǎn)換函數(shù)之一,是將一些處理過的按一定格式編排過的字符串變回數(shù)值型的格式。
1、to_number()函數(shù)可以將char或varchar2類型的string轉(zhuǎn)換為一個number類型的數(shù)值;
2、需要注意的是,被轉(zhuǎn)換的字符串必須符合數(shù)值類型格式,如果被轉(zhuǎn)換的字符串不符合數(shù)值型格式,Oracle將拋出錯誤提示;
3、to_number和to_char恰好是兩個相反的函數(shù);
語法:
to_number(varchar2 or char,'格式')
To_number函數(shù)中也有很多預(yù)定義的固定格式:
格式值 | 含義 |
---|---|
9 | 代表一個數(shù)字 |
0 | 強(qiáng)迫0顯示 |
$ | 顯示美元符號 |
L | 強(qiáng)制顯示一個當(dāng)?shù)氐呢泿欧?/td> |
. | 顯示一個小數(shù)點(diǎn) |
, | 顯示一個千位分隔符號 |
一些例子
select to_number('000012134') from dual; select to_number('88877') from dual;
SQL> select to_number(’RMB234234.4350′,’L999999.0000′) from dual; TO_NUMBER(’RMB234234.4350′,’L999999.0000′) —————————————— 234234.435
SQL> select to_number(’$123,233,455,623.3400′,’$999,999,999,999.0000′) from dual; TO_NUMBER(’$123,233,455,623.3400′,’$999,999,999,999.0000′) ———————————————————- 1.2323E+11
如果數(shù)字在格式范圍內(nèi)的話,就是正確的,否則就是錯誤的;如:
select to_number('$12345.678', '$999999.99') from dual; select to_number('$12345.678', '$999999.999') from dual;
to_number()函數(shù)可以用來實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換;16進(jìn)制轉(zhuǎn)換為10進(jìn)制:
select to_number('19f','xxx') from dual; select to_number('f','xx') from dual;
推薦教程:《Oracle教程》