Was genau hast Du denn genau vor? Was soll bei einem Insert, bei einem Update und bei einem Delete passieren? OLD und NEW sind Records, die bei den einzelnen Operationen unterschiedlich gesetzt sind:
NEW : Data type RECORD; variable holding the new database row for INSERT/UPDATE operations in row-level triggers. This variable is NULL in statement-level triggers and for DELETE operations.
OLD : Data type RECORD; variable holding the old database row for UPDATE/DELETE operations in row-level triggers. This variable is NULL in statement-level triggers and for INSERT operations.
Bis jetzt sehe ich da nur ein Update auf kopie.stammdaten, aber was soll bei einem DELETE / UPDATE passieren? TG_OP sagt Dir, ob es Insert/Update oder Delete ist, was den Trigger ausgelöst hat.
Davon abgesehen:warum der Aufwand? Du kannst doch auch immer sehen, was in der eigentlichen Tabelle drinsteht? Wenn das eine Replikation werden soll (so der Name des Triggers), dann gäbe es da möglicherweise generell sinnvollere Möglichkeiten. Wenn es eine Art Logging werden soll, und Du anhand der Logtabelle nachvollziehen können willst, wann sich was und wie geändert hat, auch.