Oracle中to_number()函數的用法__C語言

來源:互聯網
上載者:User

類似於mysql


用cast就可,但要填適當的類型,樣本:

select cast(11 as unsigned int) /*整型*/

select cast(11 as decimal(10,2)) /*浮點型*/




(1)將char或varchar2類型的string轉換為一個number類型的數值,

需要注意的是,被轉換的字串必須符合數實值型別格式,如果被轉換的

字串不符合數值型格式,Oracle將拋出錯誤提示;

(2)to_number和to_char恰好是兩個相反的函數; 

to_number(varchar2 or char,'格式')

[sql]  view plain  copy   select to_number('000012134') from dual;   select to_number('88877') from dual;   

(2)如果數字在格式範圍內的話,就是正確的,否則就是錯誤的;如:

[sql]  view plain  copy   select to_number('$12345.678', '$999999.99') from dual;   select to_number('$12345.678', '$999999.999') from dual;  

(3)可以用來實現進位轉換;16進位轉換為10進位:

[sql]  view plain  copy   select to_number('19f','xxx') from dual;   select to_number('f','xx') from dual;  
1 用法簡介

TO_NUMBER函數()是Oracle中常用的類型轉換函式之一,主要是將字串轉換為數值型的格式,與TO_CHAR()函數的作用正好相反。

To_number函數的格式如下:

To_number(varchar2 or char,’format model’)
1 1

To_number函數中也有很多預定義的固定格式:

格式值 含義
9 代表一個數字
0 強迫0顯示
$ 顯示貨幣符號
L 強制顯示一個當地的貨幣符號
. 顯示一個小數點
, 顯示一個千位分隔字元號
2 一些例子
SQL> select to_number(’RMB234234.4350′,’L999999.0000′) from dual;    TO_NUMBER(’RMB234234.4350′,’L999999.0000′)    ——————————————    234234.435
1 2 3 4 1 2 3 4
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
1 2 3 4 1 2 3 4 3 用法陷阱

有的時候你會發現,使用了TO_NUMBER()函數並且文法正確,但是Oracle卻報“invalid number”的錯誤,而你在一遍又一遍認認真真檢查並確定語句無誤之後大呼驚奇,以為TO_NUMBER()函數還有什麼可能不知道的用法。其實這很可能是你所查詢的資料出現了問題,而非SQL。使用TO_NUMBER()函數的時候,一定要確保所轉換欄位是可轉換為數位,比如字串“20151008”是可以轉換為數字20151008的,但是字串“2015-10-08”不可以。如果你的欄位中包含了字串“2015-10-08”,而你還直接使用了TO_NUMBER()函數進行操作的話就會報“invalid number”的錯。 4 逃出陷阱

如何逃出陷阱呢。 1 前端校正

盡量在使用者輸入的時候進行必要的校正,確保輸入的數值就是我們需要的格式。 2 後台校正

在後台代碼中進行必要的檢查,篩選到錯誤的值並且傳給前台合理的提示。 3 SQL校正

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.