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]

Responder a