2009/4/22 Anderson <[email protected]>

> Boa Tarde pessoal,
>
>  seguinte estou montando um procedure e preciso que o resultado do select
> seja armazenado em uma array.esta procedure é para pegar um determinado
> numero de ids, de acordo com a quantia que o usuario desejar.
> A logica que estou usando é assim:
>
> o usuario digita que quer 10 numeros de ids,
> faço um for até o limite de 10, dentro do for eu farei um insert e em
> seguida pegarei o ultimo gravado e armazeno na array,
>
>
Anderson,

Olha que legal:

teste=# CREATE AGGREGATE array_accum (anyelement)
teste-# (
teste(#     sfunc = array_append,
teste(#     stype = anyarray,
teste(#     initcond = '{}'
teste(# );
CREATE AGGREGATE


teste=# SELECT array_accum(CAST(random()*100 as integer)) FROM
generate_series(1, 10) as id;
           array_accum
---------------------------------
 {60,57,13,22,55,46,59,79,96,37}
(1 row)



Com um SELECT gerei os teus 10 ids de forma aleatória com valores entre 0 e
100.

Referências:
http://www.postgresql.org/docs/8.3/interactive/xaggr.html
http://www.postgresql.org/docs/8.3/interactive/functions-math.html


Cordialmente,

-- 
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a