Caros, é possível, em uma stored procedure, recuperar o conteúdo de uma tabela, armazena-lo em um array do tipo record e realizar iterações sobre esse array? Eu preciso ter o array previamente preenchido antes de começar a analisa-lo. Consigo carregar um registro por vez, mas isso não serve para o meu caso.
Agradeço se alguém tiver alguma sugestão. Abaixo está um exemplo simplificado do que eu estou precisando. CREATE OR REPLACE FUNCTION record_to_array() RETURNS void AS DECLARE tab_record[] record; -- A declaração seria algo parecido com isso. Sei que essa forma que coloquei não existe. qtd_tab_record integer; BEGIN -- quantidade de linhas da tabela SELECT count(t.*) INTO qtd_tab_record FROM tabela t; -- conteudo da tabela SELECT t.* INTO tab_record FROM tabela t; -- campos de t: id e nome -- iterar no record como se fosse um array FOR i IN 1..qtd_tab_record LOOP IF ( tab_record[i].id > tab_record[i+1].id ) THEN RAISE NOTICE '%', tab_record[i].nome; ELSE RAISE NOTICE '%', tab_record[i+1].nome; END IF; END LOOP; END; -- Atenciosamente, Jackson Soares Silva
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
