使用 regexp_replace 在更新中

我有一列 db report_name, 这将有这样的意义


000007091_PaymentRegisterReport _D x3A 975844_2012-12-26.XLS


我需要删除差距 _D 在所有 PaymentRegisterReport 延期 XLS.
任何人都可以帮助我 regex 在功能内使用 regexp_replace 在运营商 update?
已邀请:

诸葛浮云

赞同来自:

你真的需要 regex 更新数据? 请检查请求。


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" 在 select, 据说 techdo.

但我写道 regex_replace, 你问 :


select regexp_replace/'000007091_PaymentRegisterReport _D x3A 975844_2012-12-26.XLS','^/.*/ _D/.*/.XLS$','\1_D\2.XLS'/ from dual;

要回复问题请先登录注册