oracle如何判断某个字段的值是不是数字

 我来答
freechan10
2019-11-15 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.7万
展开全部

1、创建测试表,

create table test_isnum(id number, value varchar2(20));

2、插入测试数据,

insert into test_isnum values(1,'a');

insert into test_isnum values(2,329);

insert into test_isnum values(4,'15');

insert into test_isnum values(6,'2c');

commit;

3、查询表中所有记录,select t.*, rowid from test_isnum t,

4、编写sql,判断value字段,记录为数字的内容,

select t.*,

       case

         when not regexp_like(value, '\D') then

          '是'

         else

          '否'

       end as "是否数字"

  from test_isnum t;

badkano
推荐于2017-10-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

要先创建一个函数:

create or replace function Isnumber(P_column in varchar2) return number
is
 l_t number;
begin
  l_t := to_number(P_column) ;
     return 1;
  exception when others then
     return 0;
end;

测试,如果返回0,则代表不是数字,如果返回值为1则代表是数字。

select Isnumber('100') from dual;

select Isnumber('-100') from dual;

select Isnumber('100.01') from dual;

select Isnumber('a123') from dual;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最后天使毁灭
推荐于2017-09-08 · TA获得超过14.1万个赞
知道顶级答主
回答量:12万
采纳率:0%
帮助的人:8.9亿
展开全部
1. 这个问题itpub已讨论很久,你搜一下。
2.不使用存储过程,ORACLE没有ISNUMBER()之类的函数,因此至少你得写一个类似ISNUMBER()的函数,这就是存储过程。
3. 在这个函数中通过使用 TO_NUMBER() 并捕捉异常来确定是否是数字。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式