Beleza Renato,

Segui sua proposta de solução e funcionou. Realmente os scripts de criação das 
tabelas que enviei estavam incompletos (conforme também citaram Bruno e 
Rafael), mas no banco estavam criados os campos corretamente. 

Renato Deggau <[EMAIL PROTECTED]> escreveu:                                  
Valdair
 
 algumas considerações:
 
 - o script que voce mandou de criação de tabelas não referencia a coluna
 CD_UF que voce usa na trigger;
 - voce tem certeza que a sua trigger compilou? Voce recebeu a msg "Gatilho
 criado."? ou recebeu "Advertência: Gatilho criado com erros de compilação."?
 o Codigo que voce mandou nao compila com as tabelas mandadas
 - finalmente, a proposta de solução do teu problema: no teu comando insert
 da trigger, para os campos da tabela atual que devem ser inseridos, voce
 deve referencia-los como :new, pois referencia-se ao valores da tabela atual
 que está sofrendo a inserção
 
 obs: tireu a UF da trigger abaixo pois nao constava da tabela
 
 CREATE OR REPLACE TRIGGER TRG_ONINSCIDADE BEFORE INSERT
 ON CIDADE
 FOR EACH ROW
 BEGIN
 INSERT INTO CIDADE2(CD_CID,NM_CID)
 VALUES(:new.CD_CID, :new.NM_CId);
 END TRG_ONINSCIDADE;
 
 Renato Deggau
 
 On 5/11/07, valdair_matos <[EMAIL PROTECTED]> wrote:
 >
 >   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")
 > )
 >
 >  
 >
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
     
                       




---------------------------------
Valdair Matos 
Braço do Norte - SC - Brasil


 __________________________________________________
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]

Responder a