如何替换oracle数据库列中的特定值?

时间:2010-08-09 18:47:15

标签: sql oracle replace

我希望替换特定列中的值。例如,以下列值

column name
----------
Test1
Test2
Test3
Test12

应该是(将est1替换为rest1

column name
----------
Trest1
Test2
Test3
Trest12

4 个答案:

答案 0 :(得分:163)

使用REPLACE

SELECT REPLACE(t.column, 'est1', 'rest1')
  FROM MY_TABLE t

如果要更新表格中的值,请使用:

UPDATE MY_TABLE t
   SET column = REPLACE(t.column, 'est1', 'rest1')

答案 1 :(得分:18)

如果您需要更新特定表格中的值:

UPDATE TABLE-NAME SET COLUMN-NAME = REPLACE(TABLE-NAME.COLUMN-NAME, 'STRING-TO-REPLACE', 'REPLACEMENT-STRING');

其中

  TABLE-NAME         - The name of the table being updated
  COLUMN-NAME        - The name of the column being updated
  STRING-TO-REPLACE  - The value to replace
  REPLACEMENT-STRING - The replacement

答案 2 :(得分:-1)

在Oracle中,存在模式名称的概念,因此请尝试使用此

update schemname.tablename t
set t.columnname = replace(t.columnname, t.oldvalue, t.newvalue);

答案 3 :(得分:-4)

我使用版本4.0.2.15和Build 15.21

对我来说,我需要这个:

UPDATE table_name SET column_name = REPLACE(column_name,"search str","replace str");

t.column_name放在replace的第一个参数中不起作用。