oracle判斷乙個字元是否是數字

2021-06-21 16:55:49 字數 817 閱讀 7317

方法一

返回值為null的表示字串,返回值大於等於1的表示有非數字字元

select   lengthb(ltrim( '1248346 ', '0123456789 '))   from   dual;

或 select   lengthb(rtrim( '1248346a ', '0123456789 '))   from   dual;

方法二

返回值為null的表示字串,返回值大於等於1的表示有非數字字元

select   translate( '123 ', '0123456789 ', ' ')   from   dual

方法三

如果返回為空指,則全部為數字,反之則含有非數字字元

select   lengthb(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace( '0123456789a ', '0 '), '1 '), '2 '), '3 '), '4 '), '5 '), '6 '), '7 '), '8 '), '9 '))   ifnum   from   dual

方法四

如果是oracle   10g,可以用正規表示式實現

如果返回為0,則表示都是數字,反之,表示有非數字存在

select   count( 'a123 ')   from   dual   where   regexp_like( 'a123 ',   '[^[:digit:]] ')

========================

不建議使用方法三

C 之 判斷乙個字元是否是漢字

判斷乙個字元是不是漢字通常有三種方法 1 用 ascii 碼判斷 2 用漢字的 unicode 編碼範圍判斷 3 用正規表示式判斷。1 用ascii碼判斷 在 ascii碼表中,英文的範圍是0 127,而漢字則是大於127,具體 如下 string text 漢字,abc for int i 0 i...

C 之 判斷乙個字元是否是漢字

判斷乙個字元是不是漢字通常有三種方法 1 用 ascii 碼判斷 2 用漢字的 unicode 編碼範圍判斷 3 用正規表示式判斷。1 用ascii碼判斷 在 ascii碼表中,英文的範圍是0 127,而漢字則是大於127,具體 如下 string text 漢字,abc for int i 0 i...

C 判斷乙個字元是否是字母或數字

isalnum 函式用來檢測乙個字元是否是字母或者十進位制數字。如果僅僅檢測乙個字元是否是字母,可以使用 isalpha 函式 如果僅僅檢測乙個字元是否是十進位制數字,可以使用 isdigit 函式。如果乙個字元被 isalpha 或者 isdigit 檢測後返回 真 那麼它被 isalnum 檢測...