multiset union distinct
requiere que los elementos de la colección sean comparables. En su caso, los elementos son registros PL/SQL que, lamentablemente, no son estructuras de datos comparables (es decir, PL/SQL no proporciona un mecanismo integrado para comparar registros PL/SQL).
multiset union
funciona porque no necesita comparar los elementos.
Una posible solución es usar el tipo de objeto Oracle en lugar del registro PL/SQL. El tipo de objeto le permite implementar un método de comparación requerido por multiset union distinct
.