Oracle SQL PLS-00049: неверная переменная связывания в Trigger - PullRequest
0 голосов
/ 22 января 2019

Я получаю эту ошибку, я пытаюсь исправить ее безуспешно, я управлял таблицей, которую я использую для этого триггера, но она не работает. это код,

create or replace TRIGGER INSERISCITURNO
 instead of insert on VistaTurno  for each row
  declare
 ok boolean;
  begin
         ok := false;
  for i in (select a.Giocatore from AVATAR a where a.Partita = :new.Partita ) loop
  if (:new.Giocatore = i.Giocatore) then
    insert into TURNO(CodTurno, NumTurno, Partita, Giocatore) values (:new.CodTurno, :new.NumTurno, :new.Partita, :new.Giocatore);
      AggiornaSituazioneGiocatore(:new.Giocatore, :new.CodTurno, :new.Partita);
      ok := true;
    end if;
    end loop;

    if(ok = false) then
    dbms_output.put_line('Il giocatore è in partita, inserimento fallito!');
    end if;
end;

они дают мне эту ошибку при компиляции,

Errore(8,68): PLS-00049: bad bind variable 'NEW.PARTITA'
Errore(9,11): PLS-00049: bad bind variable 'NEW.GIOCATORE'
Errore(10,75): PLS-00049: bad bind variable 'NEW.CODTURNO'
Errore(10,90): PLS-00049: bad bind variable 'NEW.NUMTURNO'
Errore(10,105): PLS-00049: bad bind variable 'NEW.PARTITA'
Errore(10,119): PLS-00049: bad bind variable 'NEW.GIOCATORE'
Errore(11,39): PLS-00049: bad bind variable 'NEW.GIOCATORE'
Errore(11,55): PLS-00049: bad bind variable 'NEW.CODTURNO'
Errore(11,70): PLS-00049: bad bind variable 'NEW.PARTITA'

Пожалуйста, кто-нибудь может мне помочь? я думаю, что синтаксис хороший.

добавить VistaTurno

 CREATE OR REPLACE FORCE VIEW VISTATURNO (
     "CODTURNO", "NUMTURNO", "PARTITA", "GIOCATORE"
 ) AS
 select * from TURNO;

а это турно

create table TURNO (
CodTurno integer primary key ,
NumTurno integer not null ,
Partita integer,
Giocatore integer
);

alter table TURNO
add constraint  v4 check  (NumTurno > 0);

alter table TURNO
add constraint  fk1 FOREIGN KEY (Partita) REFERENCES PARTITA(CodPartita);

alter table TURNO
 add constraint  fk2 FOREIGN KEY (Giocatore) REFERENCES 
  GIOCATORE(CodGiocatore);

введите описание изображения здесь

...