sql >> データベース >  >> RDS >> Oracle

OracleSQLRegexが期待される結果を返さない

    Oracleは、非キャプチャグループ(?:)をサポートしていません。 。代わりにキャプチャグループを使用する必要があります。

    また、perlスタイルの空白のメタ文字\sも好きではありません。 文字クラス内で一致[]\の文字と一致します およびs 空白の代わりに)。 POSIX式[:space:]を使用する必要があります 代わりに。

    SQLフィドル

    Oracle11gR2スキーマのセットアップ

    クエリ1

    select *
    from (
      select column_value str
      from   table(sys.dbms_debug_vc2coll('123','1234','12345','12 135', '1', '12 3'))
    )
    where regexp_like(str, '\d([()[:space:]#-]*\d){3,}')
    

    結果

    |    STR |
    |--------|
    |   1234 |
    |  12345 |
    | 12 135 |
    



    1. OracleUTL_SMTP経由でメールを送信しようとしたときのACLエラー

    2. 1つのテーブルから選択し、IDがリンクされている別のテーブルからカウントします

    3. トランザクションの途中でトランザクションの読み取り専用プロパティを変更することはできません

    4. WEEK()の例– MySQL