2010-08-09 16 views
51

Szukam zamiany wartości w określonej kolumnie. Na przykład następujące kolumna wartościJak zamienić określone wartości w kolumnie bazy danych Oracle?

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

należy (zastępując est1 z rest1)

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

Spojrzałem na wynikach wyszukiwania i znaleźć te, które używają zastąpić uzyskać wartości z podwójnym stole. Szukam zaktualizować tabelę, a nie uzyskać wartości. – schar

Odpowiedz

136

Zastosowanie REPLACE:

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

Jeśli chcesz zaktualizować wartości w tabeli, stosowanie :

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

W Oracle powinno to być UPDATE t, a nie UPDATE TABLE t. –

+1

@Tom Przypuszczalnie "TABELA" jest tu używana jako fikcyjna nazwa tabeli (a "t" jest aliasem). Instrukcja select pobiera także wartości z podobnie nazwanej tabeli fikcyjnej. – nbrooks

16

Jeśli trzeba aktualizować wartość w określonej tabeli:

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

gdzie

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

Używam wersja 4.0.2.15 z produkcji 15,21

Dla mnie to potrzebne :

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

Oddanie t.column_name w wersji fi pierwszy argument z replace nie działa.

-1

W Oracle, istnieje pojęcie nazwy schematu, więc spróbuj użyć tej

update schemname.tablename t 
set t.columnname = replace(t.columnname, t.oldvalue, t.newvalue); 
Powiązane problemy