Oracle - update regexp like

Oracle - update regexp like
WW
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 5 lat
  • Postów:3
0

Proszę o pomoc. Przykładowo mam tabele ksiazki w niej kolumnę autor i kolumnę imie, która jest pusta.

Chcę do kolumny imie wrzucić imię z kolumny autor.

Przykładowo autor = Adam Mickiewicz

Kopiuj
update ksiazki
set imie = (select REGEXP_SUBSTR(AUTOR, '[^ ]+', 1, 1) from ksiazki )
where REGEXP_SUBSTR(AUTOR, '[^ ]+', 1, 1) like autor||'%'    ;

Powyższy update działa, ale otrzymuje komunikat 0 row(s) updated.

YA
  • Rejestracja:prawie 10 lat
  • Ostatnio:9 dni
  • Postów:2370
1
WalterWhite napisał(a):

set imie = (select REGEXP_SUBSTR(AUTOR, '[^ ]+', 1, 1) from ksiazki )

Co jeśli to zapytanie zwróci więcej niż 1 rekord? Jeśli chodzi o aktualizację z tego samego wiersza, to nie ma potrzeby robić podzapytania, wystarczy odwołać się do atrybutu, np.

Kopiuj
update ksiazki set imie = REGEXP_SUBSTR(AUTOR, '[^ ]+', 1, 1)  where imie IS NULL and autor IS NOT NULL; 
WW
@yarel: Dzięki! Zadziałało

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.