When writting triggers for sequences in ORACLE is a good practice to assign the sequence id only if it was not assigned before. This is because, in some case, the sequence must be generated from another process (e.g. for key propagation).
The trigger code must finish with slash (/) in order to be runned as script.
This is a sample:
CREATE OR REPLACE TRIGGER TRI_DEPARTAMENTS_DEPART_ID BEFORE INSERT ON DEPARTAMENTS
FOR EACH ROW
IF :NEW.DEPART_ID IS NULL THEN