1
resposta

Function com Retorno PIPELINED

Olá, Tenho uma Função recursiva que retorna Pipelined com todas baixas de um boleto. Porém pode ter repetição de dados devido a recursividade (um ou mais boletos poder ser baixados como outro boleto) a duvida é o seguinte. tem como fazer uma tratativa desse dado PIPILENED antes de dar o Return? Tipo um update... ou tipo

    FOR i..TAB_RETORNO.COUNT LOOP
        IF TAB_RETORNO(i) = X then
            TAB_RETORNO.DELETE();
        ELSE
            TAB_RETORNO.UPDATE();
    EN IF;
    END LOOP;
1 resposta

Oi Mauricio! Como você está?

Peço desculpas por demorar a te responder.

Sim, é possível fazer a tratativa dos dados pipelined antes do return.

Para isso, é necessário colocar a lógica desejada dentro do loop FOR que itera sobre sua tabela TAB_RETORNO. Entretanto, uma função pipelined não sustenta comandos DML como o UPDATE, então é necessário usar outra lógica para solucionar esse problema. Uma possibilidade é criar uma tabela temporária que armazene os resultados tratados e em seguida, realizar as operações de exclusão ou atualização nessa nova estrutura de dados temporária antes de retornar o resultado pipelined.

Espero ter contribuído! Abraços.