17,140
社区成员




select * from(
select '1' as str from dual union
select '1.1' from dual union
select '1.a' from dual union
select '-6.0' from dual union
select '+6.0'from dual union
select '.9'from dual) a
where NVL(TRANSLATE (str, '.0123456789', '.'),'.') in('+.','-.','.')
/*
STR
+6.0
-6.0
.9
1
1.1*/
SQL> select 1+1 from dual where REGEXP_LIKE(123, '[[:digit:]]') ;
1+1
----------
2
SQL> select 1+1 from dual where REGEXP_LIKE('aaa', '[[:digit:]]') ;
no rows selected
SQL> select 1+1 from dual where REGEXP_LIKE('222', '[[:digit:]]') ;
1+1
----------
2