壹共有三種方法,分別是使用 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...