2010-08-09 16 views
51

Belirli bir sütundaki değerleri değiştirmek istiyorum. Örneğin aşağıdaki sütunOracle veritabanı sütunundaki belirli değerler nasıl değiştirilir?

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

(rest1 ile est1 değiştirme) olmalıdır değerleri

column name 
---------- 
Trest1 
Test2 
Test3 
Trest12 
+0

kullanmayı deneyin, şema adının kavram vardır. Tabloyu değer almak yerine güncellemek istiyorum. – schar

cevap

136

Kullanım REPLACE:

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

Tabloda değerleri güncelleştirmek istiyorsanız

, kullanım :

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

Oracle'da bu UPDATE t olmalıdır, UPDATE TABLE t değil. –

+1

@Tom Muhtemelen 'MASA', kurmaca tablo adı olarak kullanılır (ve 't' takma addır). Select deyimi aynı şekilde adlandırılmış bir kurgusal tablodan değerler alıyor. – nbrooks

16

Belirli bir tablodaki değerini güncellemek için gerekirse:

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

Ben Benim için Build'a 15.21

ile Versiyon 4.0.2.15 kullanıyorum ben bu gerekli

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

:

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

fi içinde t.column_name koymak replace numaralı argüman çalışmadı. Oracle

-1

, bu yüzden arama sonuçları ve ikili tablodan değerleri elde etmek yerine kullanmak bulundu olanları baktı bu

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