oracle自定义判断是否数字函数isNumber()

时间:2023-03-09 17:50:12
oracle自定义判断是否数字函数isNumber()

右击function选择新增

如果是数字返回本身,如果不是数字返回0:

create or replace function isNumber(p in varchar2) return number is
  Result number;
begin
  result := to_number(p);
  return result;
  exception
    when VALUE_ERROR then return 0;
end isNumber;

不用定义functino的一种方法:

当a.start_range为字符返回'0',否则返回他本身,再to_number()一下得到所有结果都是数字

select   to_number(nvl2(translate(a.start_range, '\1234567890', '\'), '0', a.start_range))   from   METER_BATCH_INFO a;

弊端:对具有小数点的数字类型无效