Sou iniciante no PL-SQL, e estou tentando criar uma trigger de auditoria onde me retorna alguns erro:
Table:
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)
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:
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