如何判断一个5字符串中只能是数字或‘X’?

gemini419 2005-12-06 07:37:02
如题!
...全文
192 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjqqxjqq 2005-12-07
  • 打赏
  • 举报
回复
一条语句最简单
SQL> select ltrim('123X','1234567890X') from dual;

LTRIM('123X','1234567890X')
---------------------------

SQL> select ltrim('123Xa','1234567890X') from dual;

LTRIM('123XA','1234567890X')
----------------------------
a
tmdxht 2005-12-07
  • 打赏
  • 举报
回复
create or replace function uf_num(av_strin in varchar2) return varchar2 is
v_len number;
i number;
v_str_new varchar2(255);
v_chr char(2);

begin
v_str_new:=translate(rtrim(ltrim(av_strin)),'1234567890x','00000000000');
v_len:=length(av_strin);
i:=1;
while i<=v_len loop
v_chr:=substr(v_str_new,i,1);
if v_chr<>'0' then
return 'F';
end if;
i:=i+1;
end loop;
return 'T';
end;

SQL> select uf_num('12345') from dual;

UF_NUM('12345')
--------------------------------------------------------------------------------
T

SQL> select uf_num('12345SDFSD') from dual;

UF_NUM('12345SDFSD')
--------------------------------------------------------------------------------
F
超叔csdn 2005-12-07
  • 打赏
  • 举报
回复
create or replace function yourtest(str1 varchar2)
return varchar2 as
str2 varchar2;
str3 varchar2;
begin
str2:=ltrim(str1,'1234567890X');
if str2 is Null or str2='' then
str3:='right'
else
str3:='wrong'
end if;
return str3;
end;
/

select yourtest('yourstring') from dual;
gemini419 2005-12-07
  • 打赏
  • 举报
回复
怎么写?
hfyang9095 2005-12-07
  • 打赏
  • 举报
回复
学习,
tmdxht 2005-12-07
  • 打赏
  • 举报
回复
写个函数!
gemini419 2005-12-07
  • 打赏
  • 举报
回复
还有没有其他的方法啊?
zzwind5 2005-12-06
  • 打赏
  • 举报
回复
SQL> select 1 from dual where translate('121432X', '!1234567890X', '!') is null;

1
----------
1

用一个最不可能出现的符号替换 '!'

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧