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

Oracle REGEXP_REPLACE関数内で角かっこをハイフンに置き換えるにはどうすればよいですか?

    シンボルを置き換えるには、 TRANSLATE<を使用します。 / code> 関数、正規表現関数よりもプロセッサへの負荷が少ない:

    SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
    
    REPLACED
    --------
    -<FIO>-
    

    正規表現はより用途が広く、より複雑なことを実行できますが、より高価です。この場合、ある文字を別の文字に置き換えることは、特殊な機能によってより効率的に行われます。本当に正規表現を使用したい場合は、 REGEXP_REPLACE

    SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
    
    REG
    ---------
    --<FIO>--
    

    更新:最初の記号のみを置き換えたい場合、翻訳は機能しません。代わりに、以下を使用してください:

    SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
    
    REG
    ---------
    -(<FIO>)]
    



    1. PHPの他のクラスのクラスを適切に使用していますか?

    2. 照合とはどういう意味ですか?

    3. パフォーマンスの問題:最初の遭遇

    4. oracle pl/sqlの内部プロシージャから外部プロシージャにカーソルを戻す