Olá, sou novato no grupo e também no oracle

estou tentando aprender a criação e utilização de triggers
nao consigo entender o que há de errado na trigger abaixo

CREATE OR REPLACE TRIGGER UNISUL.TRG_ONINSCIDADE BEFORE INSERT
ON UNISUL.CIDADE
FOR EACH ROW
BEGIN
         INSERT INTO UNISUL.CIDADE2(CD_CID,NM_CID,CD_UF)
         VALUES(UNISUL.CIDADE.CD_CID,UNISUL.CIDADE.NM_CID,UNISUL.CIDADE.CD_UF);
END UNISUL.TRG_ONINSCIDADE;

o código acima é um exemplo do que estou querendo fazer: quando
inserir um registro em uma tabela automaticamente inserir o registro
em uma segunda tabela.

Consigo compilar, mas quando vou inserir um registro na tabela cidade
ocorre o erro: 
ORA-04098: gatilho 'UNISUL.TRG_ONINSCIDADE' é inválido e a revalidação
falhou

codigo das tabelas

Create table "CIDADE" (
        "CD_CID" Number(5,0) NOT NULL ,
        "NM_CID" Varchar2 (40) NOT NULL ,
 Constraint "CIDADE_PK" primary key ("CD_CID") 
) 

Create table "CIDADE2" (
        "CD_CID" Number(5,0) NOT NULL ,
        "NM_CID" Varchar2 (40) NOT NULL ,
 Constraint "CIDADE_PK" primary key ("CD_CID") 
) 




Responder a