Erro em trigger PL/SQL: ORA-00984: coluna não permitida aqui

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
nathanael
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Ter, 20 Jan 2009 4:08 pm
Localização: Guarulhos - SP
Nathanael Alexandre

Pessoal ,

Sou iniciante no PL-SQL, e estou tentando criar uma trigger de auditoria onde me retorna alguns erro:

Table:

Selecionar tudo

desc logauditoria
Name                           Null     Type                                                                                                                                                                                          
------------------------------ -------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
CODIGO                         NOT NULL NUMBER                                                                                                                                                                                        
DADOS_ANTES                    NOT NULL VARCHAR2(300)                                                                                                                                                                                 
DADOS_DEPOIS                   NOT NULL VARCHAR2(300)                                                                                                                                                                                 
USUARIO                                 VARCHAR2(300)                                                                                                                                                                                 
DATAALTERADO                            DATE                                                                                                                                                                                          
TABELA                                  VARCHAR2(60)                                                                                                                                                                                  
OPERACAO                                VARCHAR2(60)                                                                                                                                                                                  
codigo trigger :

Selecionar tudo

create or replace trigger tr_cidade 
  before insert or update or delete on cidade
  for each row
  declare
    usuario varchar2(60);
  begin 
    select user into usuario from dual;
    ----inserção 
    if(:old.codigo_cidade is null ) then
     
      insert into logauditoria (codigo,dados_antes,dados_depois,usuario,dataalterado,tabela,operacao)
        values(seqauditoria.nextval,'Novo registro',to_char(:new.codigo_cidade)||', '||:new.nome_cidade ||', '||:new.uf ||', '||to_char(:new.taxa),usuario,sysdate,'cidade','Inserção');
      
    else
     if (updating) then
       
        insert into logauditoria (codigo,dados_antes,dados_depois,usuario,dataalterado,tabela,operacao) values(seqauditoria.nextval,to_char(old.codigo_cidade)||', '||:old.nome_cidade ||', '||:old.uf ||', '||to_char(:old.taxa),to_char(new.codigo_cidade)||', '||:new.nome_cidade ||', '||:new.uf ||', '||to_char(:new.taxa),usuario,sysdate,'cidade','Alteração');
        
    else
      if (deleting) then 
        
        insert into logauditoria (codigo,dados_antes,dados_depois,usuario,dataalterado,tabela,operacao)
         values(seqauditoria.nextval,to_char(old.codigo_cidade)||', '||:old.nome_cidade ||', '||:old.uf ||', '||to_char(:old.taxa),to_char(new.codigo_cidade)||', '||:new.nome_cidade ||', '||:new.uf ||', '||to_char(:new.taxa),usuario,sysdate,'cidade','Exclusão');
         
    end if;
  end if;
  end if;
end tr_cidade; 



erros:

Selecionar tudo

Error(19,9): PL/SQL: SQL Statement ignored
Error(19,186): PL/SQL: ORA-00984: coluna não permitida aqui
Error(24,9): PL/SQL: SQL Statement ignored
Error(25,161): PL/SQL: ORA-00984: coluna não permitida aqui
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Acho que antes do seu old.codigo_cidade ficou faltando ":". Pode ter mais mas é o que notei agora olhando rápido.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Mesma coisa para o new.codigo_cidade.
nathanael
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Ter, 20 Jan 2009 4:08 pm
Localização: Guarulhos - SP
Nathanael Alexandre

Obrigado,

Era extamente o dois pontos que estava causando o erro.
Responder
  • Informação
  • Quem está online

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