Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Variável de ligação ruim da mensagem de erro no gatilho


O gatilho é definido em ACCOUNT tabela. Você postou a definição do CUSTOMER tabela. A menos que a ACCOUNT tabela tem colunas CustName e DOB , o que parece altamente improvável, você não pode consultar :new.CustName ou :new.DOB -- o :new registro é para a linha que está sendo inserida no ACCOUNT tabela.

Onde você pretende obter o CustName e DOB para inserir no Customer tabela?

Dando um passo para trás, por que um gatilho na Account tabela tentando inserir uma linha no Customer mesa em primeiro lugar. Isso parece um design excepcionalmente pobre. O CustID na Account A tabela presumivelmente seria uma chave estrangeira que faz referência ao Customer tabela. Isso significaria, porém, que você só poderia inserir a linha pai em um gatilho se declarar as restrições como adiáveis ​​e adiá-las no início de cada transação. O acionador também geralmente não tem como determinar as informações para o Customer colunas que você deseja preencher, que é a origem do erro que você está recebendo.