Blz, resolvido! Valeu!
Em 26/08/2016 19:48, "Flavio Henrique Araque Gurgel" <[email protected]>
escreveu:

>
>
> 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
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a