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

OracleREGEX_SUBSTRがnull値を尊重しない

    受け入れられた回答では、null位置の後に値が必要な場合は処理されません(6番目のフィールドを取得してみてください):

    SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
    _dt
      2  from dual;
    
    P
    -
    

    代わりにこれを行う必要があると私は信じています(11gで動作します):

    SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
    NULL, 1) phn_end_dt
      2  from dual;
    
    P
    -
    P
    

    自分の質問を投稿した後、これを発見しました: REGEXはリストからn番目の値を選択し、nullを許可します



    1. 他のバッファリングされていないクエリがアクティブな間はクエリを実行できませんループ内のエラー

    2. Postgresqlプロシージャの警告メッセージを取得するにはどうすればよいですか?

    3. 構文をトリガーし、IF ELSETHEN

    4. ストアドプロシージャとコードでSQLを維持することの長所と短所は何ですか