
正文
oracle如何判断字符,oracle如何判断字符串长度
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在Oracle中,如何判断一个字符串是否为数字
oracle本身没有,得自定义一个函数
create or replace function isNumber(p in varchar2)
return number
is
result number;
begin
result := to_number(p);
return 1;
exception
when VALUE_ERROR then return 0;
end;
调用
select isNumber('abc123') from dual
或者
select isNumber('123') from dual
返回值为1,说明是数字,返回值是0,说明里边包含非数字的字符
相关问答
Q1: oracle在sql中判断字段值是数字还是字符串
NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2;
TRANSLATE(string,from_str,to_str) 的功能:返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。
如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。
Q2: oracle 如何判断数字字串中是否含有英文字母 如题!
简单的:一条语句搞定,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;
Q3: oracle 中如何判断字符串中是否有某一个字符
declare aa varchar2 := 'wkressssdfdf';
begin
if instr(aa,'s')0 then
dbms_output.put_line('有s字符');
else
dbms_output.put_line('没有s字符');
end if;
end;


![【电子书】[历史军事] 《艰难一日:海豹六队击毙本•拉登行动亲历》[马克·欧文/凯文·莫勒][epub+mobi+azw3] 【电子书】[历史军事] 《艰难一日:海豹六队击毙本•拉登行动亲历》[马克·欧文/凯文·莫勒][epub+mobi+azw3]](https://www.04ip.com/template/qe/style/noimg/10.jpg)




