Oracle SQL PLS-00049:触发器上的绑定变量错误

时间:2019-01-22 15:08:52

标签: oracle plsql database-trigger

我收到此错误,我尝试修复失败而未成功,我已经控制了用于该触发器的表,但是它不起作用。 这是代码,

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;

这是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);

enter image description here

0 个答案:

没有答案