Olá, Éder

Segue um pequeno exemplo:

CREATE OR REPLACE FUNCTION f_insere(INTEGER,VARCHAR)
RETURNS BOOLEAN AS $$
BEGIN
FOR i IN 1..$1 LOOP
EXECUTE 'INSERT INTO ' || $2 || ' VALUES
('||i||','||quote_literal('exemplo')||')';
RAISE NOTICE '%',i;
END LOOP;
RETURN TRUE;
END;
$$ LANGUAGE PLPGSQL;

Mas aproveitando eu queria entender a sua idéia de fazer:
NEW::nome_da_tabela?

NEW::tabela? Para mim isso não faz sentido visto que NEW significa a nova
tupla que você está inserindo, que você pode fazer NEW.* para pegar todas as
colunas ou NEW.coluna.


Em 6 de maio de 2011 10:21, Eder Sousa <[email protected]> escreveu:

> *Bom dia!!!*
>
> Estou criando uma trigger no postgresql 8.4.8 (windows), que em seu código
> executa a seguinte linha (comando):
>
>    EXECUTE 'INSERT INTO ' || nome_tabela || ' VALUES( (' ||
> quote_literal(NEW) || '::' || nome_tabela || ').*)';
>


> Porém está retornando o erro abaixo:
>
> QUERY:  SELECT  STATEMENT 'INSERT INTO ' ||  $1  || ' VALUES( (' ||
> quote_literal( $2 ) || '::' ||  $1  || ').*)'
> CONTEXT:  PL/pgSQL function "fun_tr_itemnf" line 85 at comando EXECUTE
>
> ********** Error **********
>
> ERRO: tipo "statement" não existe
> SQL state: 42704
> Context: PL/pgSQL function "fun_tr_itemnf" line 85 at comando EXECUTE
>
>
> Alguém pode me ajudar com o que acontece neste erro?
>
> Abraços!
> ________________________________
> Eder Sousa
> skype:softpira?chat
> edersousa-at-gmail.com
> gescla-postgresql-ubuntu-php
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a