アプリ版:「スタンプのみでお礼する」機能のリリースについて

oracleの関数で
例)項目 ADATA VARCHAR2(100)

このADATAには
(1)先頭から数字が8桁で次に文字(スペース含む)が入っているケース
(2)先頭から数字が14桁で次に文字(スペース含む)が入っているケース
(3)先頭の1バイト目から文字

という3つのパターンがあります。

レコードごとに(1)か(2)か(3)かを判別したいのですが、何かスマートな方法ないでしょうか?

×1文字ずつ数値かどうか比較し、ループする。
○先頭から数値が何桁続いているか取得し、(1)8 (2)14 (3)0みたいに取得できる関数はないでしょうか?

どなたかよい方法ご存知の方、ご教授ください。

以上よろしくお願い致します。

A 回答 (2件)

賛成。


length( regexp_substr(ADATA,"^\d*") )
    • good
    • 0
この回答へのお礼

回答どうもありがとうございました。
思惑の処理ができました。

お礼日時:2011/11/14 18:34

私なら


REGEXP_SUBSTR
関数を使うわね
    • good
    • 0
この回答へのお礼

回答どうもありがとうございました。
正規表現がわからなかったのですが、No.2みて思惑のことができました。

お礼日時:2011/11/14 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す