Die sicherste Möglichkeit ist tatsächlich ein Trigger, den du auch per "Create or replace Trigger ..:" in SQL machen kannst.
Du kannst dann einfach eine neue Tabelle (Create Table ... as select ...) erstellen und den zu löschenden Satz per Insert aus dem Trigger sichern.
Dabei kannst du dann die zusätzlich erforderlichen Informationen mit ausgeben.