Oracle
 sql >> Database >  >> RDS >> Oracle

Elimina le righe corrispondenti alla sottostringa con LIKE?

Ho appena replicato il tuo problema e ho ricevuto lo stesso errore:sembra che la funzione non possa funzionare da un'istruzione DELETE. Il testo completo dell'errore è:

ORA-04091: table HOU.LONGTABLE is mutating, trigger/function may not see it
ORA-06512: at "TONY.SEARCH_LONG", line 4

Questo approccio procedurale funzionerà:

begin
  for r in (select id from longtable 
            where search_long(rowid) like '%hello%')
  loop
    delete longtable where id = r.id;
  end loop;
end;