様々な基本になるサンプルを記録しています。

不定期更新です。

記事のサイドに使用している商品の紹介も掲載しているので、良ければご覧ください。

【ORACLE】正規表現

正規表現でのチェックは、正規表現自体を理解していれば 非常に有用且つ開発が楽になる。
ただ、基本的にはサーバーサイドで使用することは あんまり良くない。
その理由として、
バックトラッキング(文字のチェック等が構文によって最初からやり直されること)の影響が計りしれないため、
サーバーサイドのボトルネックを増やすことになるのと、原因がつかみにくくなる。

そこを考えた上で、簡単なものであれば使ってもよさそうだ。

というわけでPL/SQLでの例
0から9の整数であれば、数値とみなすチェック。


SET SERVEROUTPUT ON 
DECLARE 

TYPE STR_TYPE IS TABLE OF VARCHAR(2000); 
STR_ARRY STR_TYPE; 

BEGIN 

STR_ARRY :=STR_TYPE(); 
STR_ARRY.EXTEND; 

STR_ARRY(STR_ARRY.COUNT) := 'AAAAA'; 

STR_ARRY.EXTEND; 
STR_ARRY(STR_ARRY.COUNT) := 'BBBBB'; 


STR_ARRY.EXTEND; 
STR_ARRY(STR_ARRY.COUNT) := '1234'; 


STR_ARRY.EXTEND; 
STR_ARRY(STR_ARRY.COUNT) := '5679'; 


FOR I IN 1..STR_ARRY.COUNT 
LOOP 
 /*数字かチェックする*/ 
      IF REGEXP_LIKE(STR_ARRY(I),'^[0-9]+$') THEN 

         DBMS_OUTPUT.PUT_LINE(TO_CHAR(I) || '番目は数値だよ'); 

      END IF; 
       
END LOOP 


RETURN; 

END;

日付チェックとかは、日付型を利用したほうが早いので
フォーマットが確実に決まっているのであれば、
それに対して限定的に使うというのが一番良いかもしれない。