multiset union distinct
richiede che gli elementi della collezione siano comparabili. Nel tuo caso gli elementi sono record PL/SQL che sfortunatamente non sono strutture di dati confrontabili (cioè PL/SQL non fornisce alcun meccanismo integrato per confrontare i record PL/SQL).
multiset union
funziona perché non ha bisogno di confrontare gli elementi.
Una possibile soluzione consiste nell'utilizzare il tipo di oggetto Oracle invece del record PL/SQL. Il tipo di oggetto consente di implementare un metodo di confronto richiesto da multiset union distinct
.