oracle如何判断某个字段的值是不是数字
3个回答
展开全部
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;
展开全部
要先创建一个函数:
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 这个问题itpub已讨论很久,你搜一下。
2.不使用存储过程,ORACLE没有ISNUMBER()之类的函数,因此至少你得写一个类似ISNUMBER()的函数,这就是存储过程。
3. 在这个函数中通过使用 TO_NUMBER() 并捕捉异常来确定是否是数字。
2.不使用存储过程,ORACLE没有ISNUMBER()之类的函数,因此至少你得写一个类似ISNUMBER()的函数,这就是存储过程。
3. 在这个函数中通过使用 TO_NUMBER() 并捕捉异常来确定是否是数字。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询