Ваш объединенный SQL будет выглядеть следующим образом:
select t.musteri_id from tms.isemri t where t.isemri_tarihi =
(select max(t.isemri_tarihi) from tms.isemri t where t.hizmet_no = 5634)
and t.hizmet_no = 5634
Обратите внимание, что значение 5634 является числом, а не строкой, и это заставляет Oracle неявно приводить hizmet_no к числу, что не всегда будет работать.
Вы должны использовать переменные связывания, которые исправят эту проблему:
declare
type array_t is varray(2) of VARCHAR2(20);
array array_t := array_t('5634', '5764');
l_musteri_id tms.isemri.musteri_id%type
begin
for i in 1..array.count loop
execute immediate 'select t.musteri_id from tms.isemri t
where t.isemri_tarihi = (select max(t.isemri_tarihi)
from tms.isemri t
where t.hizmet_no = :val1)
and t.hizmet_no = :val2'
into l_musteri_id
using array(i), array(i);
end loop;
end;