Le problème était que START WITH attend une valeur unique et ma sous-requête renvoyait plusieurs valeurs, j'ai donc changé la requête de :
START WITH "ID" =
(SELECT headid
FROM emppirmesion per
inner join empldabdetail empinfo
on per.emprecid = empinfo.recid
where lower(empinfo.shortname) = lower('ibmadmin') and
per.headid > 0 and
per.clasisymbolicname = 'SoHiring')
à :
Where "ID" in
(SELECT headid
FROM emppirmesion per
inner join empldabdetail empinfo
on per.emprecid = empinfo.recid
where lower(empinfo.shortname) = lower('ibmadmin') and
per.headid > 0 and
per.clasisymbolicname = 'SoHiring')
et ça marche bien.