Oracle 判斷某個欄位的值是不是數字

2021-07-02 21:58:46 字數 1358 閱讀 9061

壹共有三種方法,分別是使用 to_number()、regexp_like() 和 translate() 三種函式來進行匹配。如果欄位的值是數字,返回1,否則返回0,具體的實現如下,三種方法任選壹種即可。執行結果:如果字串是數字格式則返回1,不是則返回0。

1. 利用 to_number

create or replace function isnumeric (str in varchar2)

return number

isv_str float;

begin

if str is null

then

return 0;

else

begin

select to_number (str)

into v_str

from dual;

exception

when invalid_number

then

return 0;

end;

return 1;

end if;

end isnumeric;

2. 利用 regexp_like

create or replace function isnumeric (str in varchar2)

return number

isbegin

if str is null

then

return 0;

else

if regexp_like (str, '^(-+)[0-9]+(.[0-9]+)$')

then

return 1;

else

return 0;

end if;

end if;

end isnumeric;

3. 利用 translate

create or replace function isnumeric (str in varchar2)

return number

isv_str varchar2 (1000);

begin

if str is null

then

return 0;

else

v_str := translate (str, '.0123456789', '.');

if v_str = '.' or v_str = '+.' or v_str = '-.' or v_str is null

then

return 1;

else

return 0;

end if;

end if;

end isnumeric;

Oracle 判斷某個欄位的值是不是數字

壹共有三種方法,分別是使用 to number regexp like 和 translate 三種函式來進行匹配。如果欄位的值是數字,返回1,否則返回0,具體的實現如下,三種方法任選壹種即可。執行結果 如果字串是數字格式則返回1,不是則返回0。1.利用 to number create or re...

oracle拆分某個字段

表 uf wzlb 物資類別 表 uf wzzl 物資種類 表 uf wzlb wzzl 物資類別和物資種類關聯表,物資類別與物資種類為一對多關係 如,物資類別編碼為 wzlb 201805100004 該物資類別繫結了多個物資種類,繫結的物資種類編碼為 wzzl 201805100044,wzzl...

oracle中判斷某個字段是否存在

oracle中判斷某個字段是否存在 document為表名 docid為欄位名 select count column name from cols where table name upper document and column name upper docid 如果查詢出來的為0說明docu...