これに似た値を持つdb列report_nameがあります
000007091_PaymentRegisterReport _D x3A 975844_2012-12-26.XLS
XLS拡張子を持つすべてのPaymentRegisterReportの_Dの前のスペースを削除する必要があります。誰かが更新ステートメントのregexp_replace関数内で使用する正規表現を手伝ってもらえますか?
データを更新するために正規表現が本当に必要ですか? クエリを確認してください。
update TableName
set report_name=REPLACE(report_name, ' _D' , '_D')
WHERE report_name LIKE '%PaymentRegisterReport %' AND
report_name LIKE '%.XLS';
使うべき表現は
REGEXP_REPLACE(f1, '(.*)(_PaymentRegisterReport) _D (.*)(\.XLS)$', '\1\2_D\3\4')
レポートの種類は「PaymentRegisterReport」で識別でき、ファイル拡張子は大文字になると想定しています
" _D" bi "_D" を、techdo のように select に置き換えることができます。
しかし、あなたが求めていたように、私は regex_replace を書きました:
select regexp_replace('000007091_PaymentRegisterReport _D x3A 975844_2012-12-26.XLS','^(.*) _D(.*).XLS$','\1_D\2.XLS') from dual;