1. 程式人生 > >ORACLE 數值正則表示式

ORACLE 數值正則表示式

  --建立測試表
  create table test_regexp(
         val varchar2(255)
  );
  insert into test_regexp values('123');
  insert into test_regexp values('-123');
  insert into test_regexp values('123.123');
  insert into test_regexp values('-123.123');
  insert into test_regexp values('123L');
  insert into test_regexp values('-123L');
  insert into test_regexp values('123.123L');
  insert into test_regexp values('-123.123L');
  insert into test_regexp values('');
  select * from test_regexp;
 
  --測試數值正則表示式
  --整形正則
  select val from test_regexp where regexp_like(val, '^(-?[0-9]+)(L)?$');
  --浮點型正則
  select val from test_regexp where regexp_like(val, '^(-?[0-9]+)\.[0-9]+(L)?$');
  --數值正則
  select val from test_regexp where regexp_like(val, '^(-?[0-9]+)(\.[0-9]+)?(L)?$');

regexp_like(char1, char2) 正則驗證: char1:欄位, char2:匹配字元(用正則表示)
    與Java 中 字元型別的 matches(regex) 方法效果一樣

Java 驗證數值型別, 也可以直接複製本文中正則