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

Fehlermeldung ungültige Bindungsvariable im Trigger

Der Trigger wird auf dem ACCOUNT definiert Tisch. Sie haben die Definition des CUSTOMER gepostet Tisch. Es sei denn, das ACCOUNT Tabelle hat die Spalten CustName und DOB , was höchst unwahrscheinlich erscheint, können Sie nicht auf :new.CustName verweisen oder :new.DOB -- der :new record ist für die Zeile, die gerade in ACCOUNT eingefügt wird Tisch.

Woher beabsichtigen Sie, den CustName zu erhalten und DOB in den Customer einzufügen Tabelle?

Gehen wir einen Schritt zurück, warum ist ein Auslöser auf dem Account Tabelle, die versucht, eine Zeile in Customer einzufügen Tisch an erster Stelle. Das scheint ein außergewöhnlich schlechtes Design zu sein. Die CustID im Account Tabelle wäre vermutlich ein Fremdschlüssel, der auf Customer verweist Tisch. Das würde aber bedeuten, dass Sie die übergeordnete Zeile nur dann in einen Trigger einfügen könnten, wenn Sie die Constraints als aufschiebbar deklarieren und zu Beginn jeder Transaktion aufschieben. Der Trigger hätte im Allgemeinen auch keine Möglichkeit, die Informationen für den Customer zu ermitteln Spalten, die Sie füllen möchten, was die Quelle des Fehlers ist, den Sie erhalten.