在oracle中,可以使用to_number()函數來將數據轉為數字類型,該函數可以將字符串轉換為數值型的格式,語法“to_number(varchar2 or char,'格式')”。
本教程操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
在oracle中,可以使用to_number()函數來將數據轉為數字類型。
to_number()函數是oracle中常用的類型轉換函數之一,是將一些處理過的按一定格式編排過的字符串變回數值型的格式。
1、to_number()函數可以將char或varchar2類型的string轉換為一個number類型的數值;
2、需要注意的是,被轉換的字符串必須符合數值類型格式,如果被轉換的字符串不符合數值型格式,Oracle將拋出錯誤提示;
3、to_number和to_char恰好是兩個相反的函數;
語法:
to_number(varchar2 or char,'格式')
To_number函數中也有很多預定義的固定格式:
格式值 | 含義 |
---|---|
9 | 代表一個數字 |
0 | 強迫0顯示 |
$ | 顯示美元符號 |
L | 強制顯示一個當地的貨幣符號 |
. | 顯示一個小數點 |
, | 顯示一個千位分隔符號 |
一些例子
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
如果數字在格式范圍內的話,就是正確的,否則就是錯誤的;如:
select to_number('$12345.678', '$999999.99') from dual; select to_number('$12345.678', '$999999.999') from dual;
to_number()函數可以用來實現進制轉換;16進制轉換為10進制:
select to_number('19f','xxx') from dual; select to_number('f','xx') from dual;
推薦教程:《Oracle教程》