永发信息网

oracle 如何判断数字字串中是否含有英文字母

答案:3  悬赏:40  手机版
解决时间 2021-05-10 19:46
  • 提问者网友:鐵馬踏冰河
  • 2021-05-10 11:28
如题!
最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-05-10 12:57

简单的:


一条语句搞定,


SqlPlus里面


select decode(length(replace(translate('字符串的值','0123456789.',' '),' ','')),0, 'is number','is not a number') from dual;


麻烦点的:


写function在oracle数据库中,


create or replace function f_str_or_num(str varchar2) return varchar2 is
2 v_num number;
3 v_return varchar2(60);
4 begin
5 v_num:=to_number(str);
6 v_return:=str||' is a number string!';
7 return v_return;
8 exception when others then
9 v_return:=str||' is not a number string!';
10 return v_return;
11 end f_str_or_num;



然后调用


select f_str_or_num('字符串的值) from dual;





全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-05-10 15:27

如果是函数或者过程里面,可以to_number,如果exception那么就是包含非数字字符

  • 2楼网友:長槍戰八方
  • 2021-05-10 13:53
用到了一个函数。nvl(n,0),n表示的是你要判断的字段,比如emp表中的empno,就是nvl(empno,0)。如果empno中含有字母。那么就蒋0赋值给他 。如果你是判断,那么可以if nvl(empno,0)==0 then ···希望对你有帮助!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯