2013/5/2 izaque Maciel <izaquemac...@gmail.com> > Matheus, caso o retorno da functionY seja vários campos "numeric" para > cada linha, o return pode ser "numeric" ou deve ser "record"? >
Só use RECORD caso vá retornar várias colunas (independente do número de linhas). Veja uma função de exemplo: CREATE OR REPLACE FUNCTION function_y() RETURNS SETOF NUMERIC LANGUAGE plpgsql AS $$ BEGIN RETURN NEXT 1; RETURN NEXT 2; RETURN NEXT 3; RETURN NEXT 4; END $$; Retorna as linhas: 1, 2, 3 e 4. > E se fosse vários campos, numeric e varchar para cada linha? > > Nesse caso você deveria usar SETOF (RECORD|TYPE|TABLE) ou RETURNS TABLE. Exemplo com RETURNS TABLE: CREATE OR REPLACE FUNCTION function_y() RETURNS TABLE (numero NUMERIC, str VARCHAR) LANGUAGE plpgsql AS $$ BEGIN numero = 1; str = 'A'; RETURN NEXT; numero = 2; str = 'B'; RETURN NEXT; numero = 3; str = 'C'; RETURN NEXT; END $$; Resultaria em algo como: => SELECT * FROM function_y(); numero | str ------------+----- 1 | A 2 | B 3 | C OBS: Não testei as funções, mas devem estar corretas. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral