Oracle "new or old reference not allowed in table level trigger" I have this table 

CREATE table Pharmacists (
PhFname varchar2(10),
PhLname varchar2(10),
Salary number(7),
Nationality varchar2(10),
Shift_Start varchar2(2),
Shift_End varchar2(2),
PhID number(7) primary key,
Super_ID number(7) ,
bdate date,
constraint super_fk foreign key (Super_ID) references Pharmacists (PhID) on delete cascade);


I tried to create this trigger

create or replace trigger updShE
after update of Shift_Start on Pharmacists
begin
update Pharmacists
set Shift_End=to_number(:new.Shift_Start, '99') +8 
where PhID = :New.PhID ;
end;


but this error appears


  new or old reference not allowed in table level trigger
You need a row before level trigger for that. 

And you don't need an update, just assign the new value:

create or replace trigger updshe
  BEFORE update of Shift_Start on Pharmacists
  FOR EACH ROW
begin
  :new.shift_end := to_number(:new.Shift_Start, '99') + 8;
end;
/