CREATE OR REPLACE FUNCTION LISTA_ORDCOMPRA_PED(P_CDFILIAL   IN ITEMPRODUTO.CDFILIAL%TYPE,
                                               P_NRLANCTONF IN ITEMPRODUTO.NRLANCTONF%TYPE) RETURN VARCHAR2 IS

V_RESULT VARCHAR2(5000);
BEGIN
   V_RESULT := '';
   FOR C_PEDIDOS IN (SELECT DISTINCT NRORDEMCMPPED
                       FROM ITEMPRODUTO IT
                      INNER JOIN ITEMPEDIDO IP
                         ON IT.CDFILIALPED = IP.CDFILIAL
                        AND IT.NRPEDIDO    = IP.NRPEDIDO
                      INNER JOIN PEDIDO PED
                         ON IP.CDFILIAL = PED.CDFILIAL
                        AND IP.NRPEDIDO = PED.NRPEDIDO
                      WHERE IT.CDFILIAL   = P_CDFILIAL
                        AND IT.NRLANCTONF = P_NRLANCTONF) LOOP
      IF (LENGTH(V_RESULT) > 0) THEN
         V_RESULT := V_RESULT || ' - ' || C_PEDIDOS.NRORDEMCMPPED;
      ELSE
         V_RESULT := C_PEDIDOS.NRORDEMCMPPED;
      END IF;
   END LOOP;
   RETURN(V_RESULT);
END;
/