Oracle 中的多个 REPLACE 函数

2021-12-25 00:00:00 replace oracle

我在 oracle 中使用 REPLACE 函数来替换我的字符串中的值;

I am using the REPLACE function in oracle to replace values in my string like;

 SELECT REPLACE('THE NEW VALUE IS #VAL1#','#VAL1#','55') from dual

所以这可以替换一个值,但是如果超过 20 个,我应该使用 20 个以上的 REPLACE 函数还是有更实用的解决方案.

So this is OK to replace one value, but what about 20+, should I use 20+ REPLACE function or is there a more practical solution.

欢迎所有想法.

推荐答案

即使这个帖子很老也是 Google 上的第一个,所以我会使用正则表达式发布一个与此处实现的函数等效的 Oracle.

Even if this thread is old is the first on Google, so I'll post an Oracle equivalent to the function implemented here, using regular expressions.

比嵌套的 replace() 快得多,而且更干净.

Is fairly faster than nested replace(), and much cleaner.

在给定表的字符串列中将字符串 'a','b','c' 替换为 'd'

To replace strings 'a','b','c' with 'd' in a string column from a given table

select regexp_replace(string_col,'a|b|c','d') from given_table

它只不过是几个带有或"运算符的静态模式的正则表达式.

It is nothing else than a regular expression for several static patterns with 'or' operator.

注意正则表达式特殊字符!

Beware of regexp special characters!

相关文章