• ベストアンサー

先頭から連続する数値の桁数を取得したい

oracleの関数で 例)項目 ADATA VARCHAR2(100) このADATAには (1)先頭から数字が8桁で次に文字(スペース含む)が入っているケース (2)先頭から数字が14桁で次に文字(スペース含む)が入っているケース (3)先頭の1バイト目から文字 という3つのパターンがあります。 レコードごとに(1)か(2)か(3)かを判別したいのですが、何かスマートな方法ないでしょうか? ×1文字ずつ数値かどうか比較し、ループする。 ○先頭から数値が何桁続いているか取得し、(1)8 (2)14 (3)0みたいに取得できる関数はないでしょうか? どなたかよい方法ご存知の方、ご教授ください。 以上よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

賛成。 length( regexp_substr(ADATA,"^\d*") )

bonnumaman
質問者

お礼

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

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

私なら REGEXP_SUBSTR 関数を使うわね

bonnumaman
質問者

お礼

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

関連するQ&A