Trigger para alterar o valor antes de inserir

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Pessoal, preciso fazer o seguinte.

Tenho uma tabela onde preciso fazer o seguinte. No momento da inserção, se o valor informado num campo for X, preciso alterar pra Y.

Estou tentando fazer isso através de uma trigger, porém não estou conseguindo.

tentei altear o valor de :new mas o ORACLE me diz que não é possível alterar o valor de :new nesse tipo de trigger.

ALguém tem uma idéia?

Vejam o que estou tentando:

Selecionar tudo

CREATE OR REPLACE TRIGGER trg_altera_valor
AFTER INSERT OR UPDATE
ON tabela
FOR EACH ROW
BEGIN
    IF (:NEW.campo1 = 'X') THEN
    BEGIN
        :NEW.campo1 := 'Y';
    END;
    END IF;
END;

Obrigado.
ederphil
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Qua, 15 Out 2008 4:05 pm
Localização: taquara-RS

cara,

tenta assim!

qualquer coisa posta ai!

Selecionar tudo


CREATE OR REPLACE TRIGGER trg_altera_valor 
BEFORE  INSERT OR UPDATE OF campo1
ON tabela 
FOR EACH ROW 
BEGIN 
    IF (:NEW.campo1 = 'X') THEN 
        :NEW.campo1 := 'Y'; 
    END IF; 
END;
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

cara, é isso aew.

Bufou, hehe.

Vlw mesmo.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes