Willian Jhonnes Lara dos Santos escreveu:
> Boa tarde, amigos...
> 
> Criei uma tabela de auditoria em meu sistema, mas estou encontrando problemas 
> em compilar as triggers que disparam os logs. A função criada foi esta:
> 
> BEGIN
>    INSERT INTO
>       "SIG001LOG"
>       (
>       "LOG_USR",
>       "LOG_TBL",
>       "LOG_DTE",
>       "LOG_HRE",
>       "LOG_EVT"
>       )
>    VALUES
>       (
>       CURRENT_USER,
>       'SIG001PER', 
>       NOW(),
>       NOW(),
>       'ADICIONADA A PERMISSÃO PARA O USUÁRIO '||NEW.PER_USR||' ACESSAR 
> O FORMULÁRIO '||NEW.PER_FRM||' DO PROGRAMA '||NEW.PER_APP||' COM STATUS 
> '||NEW.PER_STS||'.'
>       );
>      RETURN NEW;
> END;
> 
> A instrução é a seguinte:
> 
> INSERT INTO
>    SIG001PER
>    (
>    "PER_USR",
>    "PER_APP",
>    "PER_FRM",
>    "PER_STS"
>    )
> VALUES
>    (
>    'WILLIAN',
>    'SIG/FOLHA',
>    'UFOL002',
>    1
>    );
> 
> O erro retornado é: "O record NEW não tem um valor PER_USR."
> 
> Independentemente de ser executada antes ou depois da instrução, a trigger 
> retorna este erro.
> 
> Alguém tem alguma idéia doq seja???
> 


Olhe a definição da tabela SIG001PER. O PostgreSQL concluiu que não 
existe o campo "PER_USR".
Como você está usando identificadores entre aspas recomendo que veja 
no manual as regras específicas que se aplicam a este tipo de 
identificadores.
http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a