multiset union distinct
wymaga, aby elementy kolekcji były porównywalne. W twoim przypadku elementy są rekordami PL/SQL, które niestety nie są porównywalnymi strukturami danych (tj. PL/SQL nie zapewnia wbudowanego mechanizmu do porównywania rekordów PL/SQL).
multiset union
działa, ponieważ nie trzeba porównywać elementów.
Jednym z możliwych obejść jest użycie typu obiektu Oracle zamiast rekordu PL/SQL. Typ obiektu umożliwia zaimplementowanie metody porównania wymagane przez multiset union distinct
.