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 pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral