Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Zeilen löschen, die Teilzeichenfolge mit LIKE entsprechen?

Ich habe gerade Ihr Problem repliziert und den gleichen Fehler erhalten - es scheint, dass die Funktion nicht innerhalb einer DELETE-Anweisung funktionieren kann. Der vollständige Text des Fehlers lautet:

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

Dieser prozedurale Ansatz wird funktionieren:

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