Em 14 de setembro de 2012 00:56, Pedro B. Alves
<[email protected]>escreveu:
>
>> Ok... presumindo que vc queira que sejam *todas as empresas* quando o "$1
>> IS NULL", ou seja, o primeiro parâmetro seja nulo, então vc pode fazer o
>> seguinte:
>>
>>
>> r_lista RECORD;
>> t_sql TEXT;
>>
>> BEGIN
>>
>> t_sql := 'SELECT codigo, nome FROM tcliente WHERE ativo = 1';
>> t_sql := t_sql || COALESCE(' AND empresa = ' || $1, '');
>>
>> FOR r_lista IN EXECUTE t_sql LOOP
>>
>>
> Funcionou.
>
Nem precisa de SQL Dinâmico para isso. Fica mais performático usando
parâmetros:
http://www.postgresql.org/docs/9.2/static/plpgsql-cursors.html#PLPGSQL-CURSOR-DECLARATIONS
Você só vai precisar de SQL dinâmico se o nome de uma das colunas, tabelas,
etc for dinâmico. Para passar um simples parâmetro não.
[]s
--
Atenciosamente,
Fábio Telles Rodriguez
blog: http:// <http://www.midstorm.org/~telles/>http://tellesr.wordpress.com
e-mail / gtalk / MSN: [email protected]
Skype: fabio_telles
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral