Trigger - co jest źle

0

Cześć,

Oracle. Nigdy nie tworzyłem triggera, nie wiem co dalej.

  1. Utworzyłem nową tabelę
    create table Persons (PersonID int primary key, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255));

  2. Stworzyłem trigger
    create trigger data_dodania
    before insert on pracownik
    for each row begin

set new.data_dodania = now()

end;

Pojawił się błąd:

Trigger DATA_DODANIA compiled

LINE/COL ERROR


3/1 PL/SQL: SQL Statement ignored
3/5 PL/SQL: ORA-00922: missing or invalid option
Errors: check compiler log

Nie znam na tyle oracle, żeby wiedzieć, co robię źle.

0

Tak na oko:

:new.data_dodania := sysdate;
0

Trochę poszło do przodu.
Ale jest inny błąd: Encountered the symbol end-of-life when expecting one of the following

0

Wklej kod triggera umieszczając go w odpowiednie znaczniki. Wtedy będzie nam łatwiej odpowiedzieć co jest źle.

0

Triggery nie wkleja się tam gdzie querry?

0

Wstaw kod triggera (odpowiedni sformatowany) w znaczniki tak jak poniżej.

KOD TRIGGERA
0

create trigger data_dodania2
before insert on pracownik
for each row begin

set new.data_dodania = sysdate()

end;

LINE/COL ERROR


3/1 PL/SQL: SQL Statement ignored
3/5 PL/SQL: ORA-00922: missing or invalid option
5/4 PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier="identifier">

0

Przepraszam, za dużo przekleiłem, teraz zedytowałem i błędy są na górze.

0
create or replace trigger data_dodania2 
before insert on pracownik
for each row 
begin
  :new.data_dodania := sysdate;
end;
/
0

Tak tylko zasugeruje, bo na Oracle się nie znam. Czemu nie rozwiązać tego wartością domyślną?

alter table pracownik    modify(datat_dodania date  default sysdate);
0

przypisanie w oracle to := a nie =

0

Dziękuję za pomoc, trigger zadziałał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1