Osvaldo. Tentei mais algumas vezes com o ANY e não consegui. Segue minha função:
CREATE OR REPLACE FUNCTION vw_relatorio_cliente ( p_status INTEGER[], p_pedido INTEGER[], p_cliente_nome VARCHAR, p_cliente_cpfcnpj VARCHAR, p_cliente_email VARCHAR, p_data_ins_inicial TIMESTAMP, p_data_ins_final TIMESTAMP, p_data_upd_inicial TIMESTAMP, p_data_upd_final TIMESTAMP, p_canal_nome VARCHAR[], p_pacote_nome VARCHAR[] ) RETURNS SETOF campos_client AS $$ DECLARE var_row campos_client%ROWTYPE; var_record RECORD; BEGIN FOR var_record IN SELECT campos FROM tabela WHERE pedido.cod ANY (p_pedido) LOOP var_row.pedido_codigo := var_record.pedido_codigo; var_row.pedido_data_entrada := var_record.pedido_data_ins; var_row.pedido_data_alteracao := var_record.pedido_data_upd; var_row.status_codigo := var_record.status_codigo; var_row.status_nome := var_record.status_nome; var_row.pacote_codigo := var_record.pacote_codigo; var_row.pacote_quantidade := var_record.pacote_quantidade; var_row.pacote_nome := var_record.pacote_nome; var_row.pacote_valor := var_record.pacote_valor; var_row.pedido_frete := var_record.pedido_frete; var_row.pedido_parcelas := var_record.pedido_qtd_parcelas; var_row.pedido_forma_de_pagamento := var_record.pedido_forma_de_pagamento; var_row.entrega_etiqueta := var_record.entrega_etiqueta; var_row.entrega_endereco := var_record.entrega_endereco; var_row.entrega_numero := var_record.entrega_numero; var_row.entrega_complemento := var_record.entrega_complemento; var_row.entrega_bairro := var_record.entrega_bairro; var_row.entrega_cidade := var_record.entrega_cidade; var_row.entrega_cep := var_record.entrega_cep; var_row.entrega_estado := var_record.entrega_estado; var_row.cliente_cpfcnpj := var_record.cliente_cpfcnpj; var_row.cliente_nome := var_record.cliente_nome; var_row.pedido_telefone := var_record.pedido_telefone; var_row.cliente_endereco := var_record.cliente_endereco; var_row.cliente_numero := var_record.cliente_numero; var_row.cliente_complemento := var_record.cliente_complemento; var_row.cliente_bairro := var_record.cliente_bairro; var_row.cliente_cidade := var_record.cliente_cidade; var_row.cliente_cep := var_record.cliente_cep; var_row.cliente_email := var_record.cliente_email; var_row.cliente_estado := var_record.cliente_estado; var_row.canal_codigo := var_record.canal_codigo; var_row.canal_nome := var_record.canal_nome; var_row.pedido_observacao := var_record.pedido_observacao; var_row.numero_sedex := var_record.entrega_etiqueta; RETURN NEXT var_row; END LOOP; RETURN; END; $$ LANGUAGE 'plpgsql'; Algum problema com o código? Abs Em 10/11/08, Daniel Robert Costa<[EMAIL PROTECTED]> escreveu: > Osvaldo. > Não funcionou o ANY ( p_numeros ). > Meu postgres é 8.1 e ainda não migramos. > Algo mais que eu possa tentar? > Tentei já diversas coisas e até agora nada. > Obrigado. > Abs > > > > Em 10/11/08, Daniel Robert Costa<[EMAIL PROTECTED]> > escreveu: >> Boa tarde galera. >> >> Tô com uma dúvida e queria saber se dá certo. >> Estou montando uma função onde alguns dos parâmetros são arrays >> (INTEGER[], >> VARCHAR[]). >> Em determinado momento da função, eu precisava utilizar o conteúdo do >> parametro INTEGER[] como uma lista, mas manter o tipo INTEGER dos itens >> da >> lista. >> Por exemplo: >> >> CREATE FUNCTION teste ( p_numeros INTEGER[] ) RETURNS SETOF tipo AS >> $$ >> DECLARE >> var_record RECORD; >> BEGIN >> FOR var_record IN >> SELECT blablabla >> FROM tabela >> WHERE numero IN ( p_numeros ) >> LOOP >> /* bla bla bla */ >> END LOOP; >> RETURN; >> END; >> $$ LANGUAGE 'plpgsql' >> >> É possível realizar tal manobra? >> A única função que encontrei é a array_to_string, mas não me serve, pois >> os >> campos devem ser numéricos. >> > > > Avalie a possibilidade de usar: > WHERE numero = ANY (p_numeros) > Coloque aqui o seu SELECT. Como você pode ver na documentação: http://www.postgresql.org/docs/8.1/interactive/functions-comparisons.html#AEN13394 expression operator ANY (array expression) já estava implementado na versão 8.1 Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral