Em sex, 26 de ago de 2016 às 17:30, Bruno Felipe <[email protected]> escreveu:
> Boa tarde pessoal, estou executando uma função que percorre todas as > tabelas filtrado por uma coluna especifica e depois atualiza a coluna por > um valor rondando no laço de repetição. porém está dando um erro que não > consigo identificar.... > > CREATE OR REPLACE FUNCTION alteraEmpresa () RETURNS void LANGUAGE > 'plpgsql' AS $$ > DECLARE > > tabela record ; > BEGIN > FOR tabela in SELECT table_name FROM information_schema.columns WHERE > table_name in (select tablename from pg_tables where schemaname = 'public' > order by 1) > and column_name = 'IdEmpresa' order by 1 > LOOP > UPDATE tabela.table_name SET "IdEmpresa" = 1; > END LOOP; > > END; > $$ > > SELECT alteraEmpresa(); > > > ERRO: esquema "tabela" não existe > LINE 1: UPDATE tabela.table_name SET "IdEmpresa" = 1 > ^ > QUERY: UPDATE tabela.table_name SET "IdEmpresa" = 1 > CONTEXT: PL/pgSQL function alteraempresa() line 10 at comando SQL > > > > como posso resolver? > > Você está tentando fazer um update dinâmico, use EXECUTE : EXECUTE 'UPDATE ' || tabela.table_name || ' SET "idEmpresa" = 1' ; []s Flavio Gurgel
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
