Oracle 中的多个 REPLACE 函数

Multiple REPLACE function in Oracle(Oracle 中的多个 REPLACE 函数)
本文介绍了Oracle 中的多个 REPLACE 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 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!

这篇关于Oracle 中的多个 REPLACE 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

SQL to Generate Periodic Snapshots from Transactions Table(用于从事务表生成定期快照的SQL)
MyBatis support for multiple databases(MyBatis支持多个数据库)
Oracle 12c SQL: Missing column Headers in result(Oracle 12c SQL:结果中缺少列标题)
SQL query to find the number of customers who shopped for 3 consecutive days in month of January 2020(查询2020年1月连续购物3天的客户数量)
How to get top 10 data weekly (This week, Previous week, Last month, 2 months ago, 3 month ago)(如何每周获取前十大数据(本周、前一周、上个月、2个月前、3个月前))
Select the latest record for an Id per day - Oracle pl sql(选择每天ID的最新记录-Oracle pl SQL)