Oracle將字串轉換為數字

2021-06-18 03:59:03 字數 513 閱讀 9820

最近用到了將oracle資料庫中某個字元型別的字段值轉換為數字並儲存至另乙個新字段,oracle自帶有tonumber函式,但需要說明的是這個函式只能轉換字串格式是正確數字的情況,也就是一旦字串為空,或者有特殊字元,或者有空格等等,都會拋錯,以下提供一種方式成功解決以上問題:

to_number(decode(decode(lower(nvl(replace(translate(strtargetfield, '$%', ' '),' ',''),0)),upper(nvl(replace(translate(strtargetfield, '$%', ' '),' ',''),0)),1,0),1,nvl(replace(translate(strtargetfield, '$%', ' '),' ',''),0),0)) numresult 

需要指出的是,在nvl函式裡還用了translate函式來替換指定的特殊字元,因為我的這個例子中的字段有可能包含有百分號獲美元符號,對於這類字元我也認為是正確的值,所以需要先過濾掉這些符號然後再對剩下的部分進行數字轉換。

將數字轉換為字串

在日常程式設計中,我們經常需要將各型別的數字轉換為字串,這裡介紹幾種簡單方法。本文沒有介紹轉換的具體演算法。1.使用巨集轉換常量數字為字串 定義如下的巨集 define to string x x 則在 中就可以將各種型別的數字轉換為字串。這個巨集可以將任意的 中的字串轉換為c語言風格的字串 例 t...

將數字字串轉換為數字

將數字字串轉換為數字的方法有多種,c中有atoi,atof,sscanf函式可用,這些函式的用法可以在msdn里查到,這裡就不在多說了,現在說一種通用的轉換的方法 template bool str2value const std string str,type value,std ios base...

Oracle將字串轉換為數字,並替換特殊字元

分類 oracle 22 oracle自帶有to number函式,但需要說明的是這個函式只能轉換字串格式是正確數字的情況,也就是一旦字串為空,或者有特殊字元,或者有空格等等,都會拋錯,以下提供一種方式成功解決以上問題 to number decode decode lower nvl replac...