網頁

2013年11月14日

[php] 如何檢查資料是否為數字?

在Oracle庫資料中,欄位屬性為VARCHAR情況下,將數字資料拿來做計算,必須先檢查資料是否為數字,才能正常計算,否則遇到非數字資料會出現錯誤警告,在此提供檢查資料是否為數字的語法, 提供使用上參考。

假設要將"CARD_MONEY"欄位內做計算後更新,SQL語法如下:
update TABLE_NAME
   set CARD_MONEY = (CARD_MONEY-1000)
 where CARD_MONEY is not NULL
   and length(trim(translate(CARD_MONEY, '+-.0123456789', ' '))) is NULL

注意事項:
此語法的運作原理是使用Oracle內建translate函數,將欄位內的資料是0123456789等數字取代成空白,欄位資料全部取代後,再用trim及length函數去除空白後計算資料長度,若欄位呈現NULL,表示資料內沒有包含數字以外的字串,因此判斷該筆資料是數字。