Retorno SETOF Timestamp



  • Prezados,

    No PostgreSQL há uma função chamada generate_series(Timestamp, Timestamp) a qual me retorna um SETOF Timestamp. Estou desenvolvendo uma function gerada pelo Maker, para ser executada no banco de dados, um fluxo do tipo banco de dados, mas preciso atribuir o retorno da função generate_series a uma variável para depois iterar sobre a mesma. Qual o tipo de dados no Maker equivalente a SETOF?

    Este seria um código em PG/PSQL da função que estou tentando fazer com que o Maker gere:

    CREATE OR REPLACE FUNCTION SP_GERAR_DISPOINIBILIDADE_DO_MES(DATAREFINI TIMESTAMP,DATAREFFIM TIMESTAMP)
    RETURNS void AS
    $BODY$

    DECLARE DIA TIMESTAMP ;

    BEGIN

    FOR DIA IN (Select generate_series(date_trunc('MONTH', DATAREFINI::TIMESTAMP), (date_trunc('MONTH',(date_trunc('MONTH', DATAREFFIM::TIMESTAMP)) ) + INTERVAL '1 MONTH - 1 day'),'1 day'))
    LOOP
    --Comando em alguma tabela;
    END LOOP;
    END;
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE;
    --END GROUP

    Valeu!

    Ricardo


  • Essa function retorna o que? É um valor? É uma tabela? Como você chama a função diretamente pelo banco de dados?
    Ela retorna mesmo alguma coisa? Então porque Return void? De que forma vc precisa do retorno? O que fará com ele?

    Explica melhor aí.


  • Boa noite Anderson,

    Primeiramente obrigado pela resposta.
    Essa function retorna o que?
    UM SETOF
    É um valor?
    Conjunto de valores
    É uma tabela?
    Não

    Como você chama a função diretamente pelo banco de dados?
    Select generate_series(date_trunc('MONTH', current_date::TIMESTAMP), (date_trunc('MONTH',(date_trunc('MONTH', current_date::TIMESTAMP)) ) + INTERVAL '1 MONTH - 1 day'),'1 day')

    Ela retorna mesmo alguma coisa?
    No exemplo acima, todos os dias do mês corrente.

    Então porque Return void?
    Return void foi erro meu o correto é RETURN SETOF TIMESTAMP

    De que forma vc precisa do retorno?
    Como um vetor, ou cursor de data
    O que fará com ele?
    Iterações.

    Att.

    Ricardo.


  • Olá.

    A função que vc chamou foi a "generate_series" que é uma função nativa do postgres. Eu queria saber como vc chama a sua função (SP_GERAR_DISPOINIBILIDADE_DO_MES) diretamente no banco de dados, retornando valores válidos. Explica o que vc pretende fazer, é possível não não seja necessário criar functions, procedures, etc...

Log in to reply