【问题标题】:Oracle UPDATE statement using the `REPLACE` function使用 `REPLACE` 函数的 Oracle UPDATE 语句
【发布时间】:2026-02-13 21:10:02
【问题描述】:

我试图记住如何在 Oracle SQL 中形成正确的 REPLACE 语句。

本质上,我需要对几千条记录执行REPLACE,其中column1column2 可能包含'14' 的值。如果是这样,我只需要用一个空格字符替换它。

我知道语法类似于以下内容,但我似乎无法完全正确:

UPDATE TABLE
SET ('column1', 'column2') = REPLACE(?????????????)
WHERE 'column1' IN ('14') AND 'column2' NOT LIKE ('4%')

任何帮助将不胜感激。

【问题讨论】:

    标签: sql oracle syntax sql-update


    【解决方案1】:

    查询应该类似于:

    UPDATE table1
    SET column1 = REPLACE(column1, '14', ' '),
        column2 = REPLACE(column2, '14', ' ')
    WHERE column1 LIKE '%14%' OR column2 LIKE '%14%'
    

    【讨论】:

    • REPLACE(Column1, '14', '') 应该是 REPLACE(Column1, '14', ' ') ;)
    • “UPDATE TABLE”在 Oracle 中不是有效的 DML 语句。
    【解决方案2】:
    UPDATE TABLENAME
      SET COLUMN1 = ' ',
      SET COLUMN2 = ' '
    WHERE COLUMN1='14' OR COLUMN2='14';
    

    假设 Column[1,2] 是字符类型。

    【讨论】: