2012-04-22 3 views
1

この行はtest_dataテーブルからc1文字列をチェックするだけで、桁がない場合はresult1列にc1文字列全体が表示されます。私はこの部分を自分でテストしようとしましたが、うまくいかないようです。PL/SQL Reg Exp found string in string

誰でも手助けできますか?テーブルと列はすべて作成され、必要な結果を提供しません。結果はランダムであるように見えます。数字のある文字列が挿入されているものもあれば、挿入されていないものもあります。

SELECT case WHEN REGEXP_Instr(c1, '[:digit:]')=0 
      THEN c1 
     end result1 
FROM test_data; 

答えて

6

利用[[:digit:]]代わりの[:digit:] POSIX文字クラスはブラケット内部の作業します。

SELECT 
    case WHEN REGEXP_Instr(c1, '[[:digit:]]')=0 THEN c1 end result1 
    ,c1 
FROM 
(
    select 'asdf' c1 from dual union all 
    select '1234' c1 from dual union all 
    select 'as1234df' c1 from dual 
) test_data;