sql - 对 Oracle 数据库列执行多个替换操作

标签 sql string oracle performance

我目前在 Oracle 数据库列中有一堆字符串需要更改,现在我正在运行多个更新语句来完成此操作。

UPDATE TABLE1 SET COLUMN1 = REPLACE 
(COLUMN1, 'ABC', 'SR1')
UPDATE TABLE1 SET COLUMN1 = REPLACE  
(COLUMN1, '123', 'SR2')
UPDATE TABLE1 SET COLUMN1 = REPLACE  
(COLUMN1, 'XYZ', 'SR3')
UPDATE TABLE1 SET COLUMN1 = REPLACE    
(COLUMN1, '789', 'SR4')

例如,我是否可以一口气完成这项工作

UPDATE TABLE1 
SET
COLUMN1 = REPLACE(COLUMN1, 'XYZ', 'SR3'), 
COLUMN1 = REPLACE(COLUMN1, '789', 'SR4')

最佳答案

您可以嵌套 replace() 调用:

UPDATE TABLE1
    SET COLUMN1 = REPLACE(REPLACE(REPLACE(REPLACE(COLUMN1, 'ABC', 'SR1'), '123', 'SR2'), 'XYZ', 'SR3'), '789', 'SR4');

Oracle 还提供 regexp_replace() .您可能会发现这对您的某些数据转换很方便。

关于sql - 对 Oracle 数据库列执行多个替换操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49820900/

相关文章:

c# - 正则表达式替换可能会或可能不会被引用的字符串

mysql - 使用 Oracle Devloper 的 Scratch Pad 将 MySQL 转换为 PL/SQL 的选项去哪儿了?

php - MySQL SELECT w/two AS id field names using php while mysql_fetch_array() to identify them uniquely

sql - 在 DB2 中更改主键序列( 'Default' 到 'Always')

c# 分解长字符串的最佳方法

sql - 当我们需要修剪时 当我们在 oracle 中不需要时

Oracle 堆栈跟踪行号与源代码不匹配!

mysql - 如何检查mysql中的触发器是否存在行?

sql - 在 PostgreSQL 中获取时间戳年份

python - 如何将字符串拆分、匹配并输出特定的模式?