Я знаю, что это старый поток, но если у кого-то еще возникла проблема «OCI-22060: аргумент [2] является недопустимым или неинициализированным номером», я нашел решение, которое работает для меня.
для оригинального курсора:
select l.t_id, r.t_name, r.t_desc
left_table l left join right_table r
on r.t_id = l.t_id;
... простой рефакторинг ...
select -99999999 t_id, 'XXXXXXXXX' t_name, 'YYYYYYYYYYYY' t_desc from dual
union all
select l.t_id, r.t_name, r.t_desc
left_table l left join right_table r
on r.t_id = l.t_id;
... работает. Мне просто нужно было отфильтровать фиктивную строку в моем клиенте.