Oracle - update regexp like

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

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.

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.

update ksiazki set imie = REGEXP_SUBSTR(AUTOR, '[^ ]+', 1, 1)  where imie IS NULL and autor IS NOT NULL; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1