Trigger - co jest źle

Odpowiedz Nowy wątek
2018-10-25 13:36
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.

Pozostało 580 znaków

2018-10-25 13:41
0

Tak na oko:

:new.data_dodania := sysdate;

Pozostało 580 znaków

2018-10-25 14:28
0

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

Brakuje Ci pewnie linii ze znaczkiem / po ostatnim end; - yarel 2018-10-25 14:40

Pozostało 580 znaków

2018-10-25 14:33
0

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

edytowany 1x, ostatnio: atezor, 2018-10-25 14:34

Pozostało 580 znaków

2018-10-25 14:34
0

Triggery nie wkleja się tam gdzie querry?

tu na forum :) - reinman 2018-10-25 14:37

Pozostało 580 znaków

2018-10-25 14:37
0

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

KOD TRIGGERA

Pozostało 580 znaków

2018-10-25 16:21
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">

edytowany 1x, ostatnio: Marek Majewski, 2018-10-25 16:45
No nasz że trigger istnieje, próbuj kompilować ten trigger - kate87 2018-10-25 16:41

Pozostało 580 znaków

2018-10-25 16:46
0

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

Pozostało 580 znaków

2018-10-26 08:00
0
create or replace trigger data_dodania2 
before insert on pracownik
for each row 
begin
  :new.data_dodania := sysdate;
end;
/
edytowany 1x, ostatnio: yarel, 2018-10-26 08:41

Pozostało 580 znaków

2018-10-26 08:37
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);

Pozostało 580 znaków

2018-10-26 08:39
0

przypisanie w oracle to := a nie =


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Tak, umknęło mi w pisaniu :-) - yarel 2018-10-26 08:41

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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