Pessoal,
Alguém já teve necessidade de atualizar uma tabela sem saber seu nome?
Ou seja, passando esse nome como parâmetro na função que executa a
atualização?
Estou com esse problema, onde preciso fazer exatamente o que descrevi
acima e meu código está da seguinte forma:
CREATE OR REPLACE FUNCTION atualiza_convenios(tabela_origem character,
inum_convenio integer, ccod_proposta character) RETURNS boolean AS
$atualiza_convenios$
BEGIN
UPDATE tabela_origem SET pad = FALSE WHERE pad IS NULL AND
num_convenio = inum_convenio AND CAST(cod_proposta AS CHAR(11)) =
ccod_proposta;
RETURN TRUE;
END;
$atualiza_convenios$ LANGUAGE plpgsql;
Quando tento criar essa função, recebo o seguinte erro:
ERROR: syntax error at or near "$1"
LINE 1: UPDATE $1 SET pad = FALSE WHERE pad IS NULL AND num_conven...
^
QUERY: UPDATE $1 SET pad = FALSE WHERE pad IS NULL AND num_convenio
= $2 AND CAST(cod_proposta AS CHAR(11)) = $3
CONTEXT: SQL statement in PL/PgSQL function "atualiza_convenios" near line 8
Ou seja, justamente no parâmetro que diz respeito à tabela a ser
atualizada, que seria meu $1.
Claro que já tentei tirar isso, deixando o nome da tabela a ser
atualizada com o comando UPDATE definido e aí funciona, mas como
disse, essa função visa atender 2 tabelas de estruturas idênticas mas
nomes diferentes. Então queria usar essa forma dinâmica para chamar:
SELECT atualiza_convenios(tabelaX, num, cod);
Se alguém já teve experiência e puder me dar uma ajuda já agradeço.
Abraço a todos e obrigado.
--
Fernando França
linux user #263682
skype: fernando_desconstruindo
http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xB5E21164
Por favor considere o meio ambiente antes de imprimir esta mensagem.
S'il vous plaît à l'environnement avant d'imprimer ce message.
Please consider the environment before printing this message.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral