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

Messaggio di errore variabile di associazione errata nel trigger

Il trigger è definito su ACCOUNT tavolo. Hai pubblicato la definizione del CUSTOMER tavolo. A meno che il ACCOUNT la tabella ha le colonne CustName e DOB , il che sembra altamente improbabile, non puoi fare riferimento a :new.CustName o :new.DOB -- il :new record è per la riga che viene attualmente inserita nel ACCOUNT tavolo.

Dove intendi ottenere il CustName e DOB da inserire nel Customer tavolo?

Facendo un passo indietro, perché è un trigger sull'Account tabella che tenta di inserire una riga nel Customer tavolo in primis. Sembra un design eccezionalmente scadente. Il CustID nel Account table sarebbe presumibilmente una chiave esterna che fa riferimento al Customer tavolo. Ciò significherebbe, tuttavia, che puoi inserire la riga padre in un trigger solo se dichiari i vincoli come differibili e li rinvii all'inizio di ogni transazione. Inoltre, il trigger generalmente non avrebbe modo di determinare le informazioni per il Customer colonne che vuoi popolare quale è l'origine dell'errore che stai ricevendo.