0

文字列に含まれる特殊文字をエスケープしようとしています。現在、特殊文字を個別に検索し、その前に \ を追加する置換機能を使用しています。以下に示すように。

directory := replace(directory, ' ', '\ ');
directory := replace(directory, '(', '\(');
directory := replace(directory, ')', '\)');
directory := replace(directory, '''', ''\'');
etc

私が疑問に思っているのは、このアクションを実行するためのよりクリーンな方法があるかどうかということです?

どんな助けや提案も大歓迎です。

4

2 に答える 2

3

これを試して:

SELECT
  regexp_replace('my ''string'' with special (characters)', '([() ''])', '\\\1')
FROM
  dual;

出力:

my\ \'string\'\ with\ special\ \(characters\)
于 2013-10-30T20:40:00.393 に答える