Olha ai um Ex. cara
CREATE OR REPLACE TRIGGER TRG_FECHFISCALRESUMO
BEFORE INSERT OR UPDATE ON FECHFISCALRESUMO FOR EACH ROW
DECLARE
V_TP_VALOR TPRESUMOFECHFISCAL.TP_VALOR%TYPE;
BEGIN
SELECT TP_VALOR INTO V_TP_VALOR
FROM TPRESUMOFECHFISCAL
WHERE ID_TPRESUMOFECHFISCAL = :NEW.ID_TPRESUMOFECHFISCAL;
IF V_TP_VALOR <> 'CAL' THEN
UPDATE FECHFISCAL
SET BO_RECALCULAR = 'S'
WHERE TP_IMPOSTO = :NEW.TP_IMPOSTO
AND CD_FILIAL = :NEW.CD_FILIAL
AND ID_FECHFISCAL = :NEW.ID_FECHFISCAL;
END IF;
END;
/
----- Mensagem original ----
De: valdair_matos <[EMAIL PROTECTED]>
Para: [email protected]
Enviadas: Sexta-feira, 11 de Maio de 2007 1:02:06
Assunto: [oracle_br] Trigger
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_ONINSCID ADE 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_ONINSCID ADE;
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")
)
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
[As partes desta mensagem que não continham texto foram removidas]