Предложение bulk collect
идет сразу после (первого) предложения select
, перед (первым) предложением from
. У вас это не в том месте.
Непонятно, почему вы используете union
(хотя это само по себе не приведет к ошибке). Возможно, в качестве непреднамеренного следствия вы получите список различных имен, потому что именно это union
делает (в отличие от union all
).
Кроме этого, как уже было отмечено в комментарии, вам не нужен union
- вам нужен or
в предложении where
. Но даже если вы измените свой запрос таким образом, вы все равно должны переместить bulk collect
на свое место.