Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Komunikat o błędzie zła zmienna wiązania w wyzwalaczu

Wyzwalacz jest zdefiniowany na ACCOUNT stół. Opublikowałeś definicję CUSTOMER stół. Chyba że ACCOUNT tabela zawiera kolumny CustName i DOB , co wydaje się bardzo mało prawdopodobne, nie możesz odwoływać się do :new.CustName lub :new.DOB -- :new rekord dotyczy wiersza, który jest aktualnie wstawiany do ACCOUNT stół.

Skąd zamierzasz uzyskać CustName i DOB wstawić do Customer stół?

Cofając się o krok, dlaczego na Account jest wyzwalacz? tabela próbująca wstawić wiersz do Customer stół w pierwszej kolejności. To wygląda na wyjątkowo kiepski projekt. CustID w Account tabela byłaby prawdopodobnie kluczem obcym, który odwołuje się do Customer stół. Oznaczałoby to jednak, że wiersz nadrzędny można wstawić do wyzwalacza tylko wtedy, gdy zadeklarujesz ograniczenia jako możliwe do odroczenia i odroczysz je na początku każdej transakcji. Wyzwalacz generalnie nie miałby również możliwości określenia informacji dla Customer kolumny, które chcesz wypełnić, co jest źródłem otrzymywanego błędu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj listę wszystkich funkcji i procedur w bazie danych Oracle

  2. Akcja dynamiczna odświeża wszystkie raporty na stronie

  3. Jak zobaczyć ograniczenia tabeli, na przykład, jeśli jest to klucz podstawowy lub klucz unikalny?

  4. Jak stworzyć tabelę w Oracle SQL Developer?

  5. NLS_CHARSET_NAME() Funkcja w Oracle