SQL Server utilise des expressions de table communes (instruction WITH) pour obtenir la même chose (voir Requêtes récursives utilisant des expressions de table communes).
Ce type de requête peut également être utilisé dans Oracle (en commençant par 11g si je ne me trompe pas).
La requête résultante est plus complexe :
WITH emp(employee_id, manager_id, job_id, last_name, lvl)
AS (
SELECT e.employee_id, e.manager_id, e.job_id, e.last_name, 1 lvl
FROM employees e
WHERE job_id = 'AD_VP'
UNION ALL
SELECT e.employee_id, e.manager_id, e.job_id, e.last_name, r.lvl + 1 lvl
FROM employees e
JOIN emp r ON r.employee_id = e.manager_id
)
SELECT LPAD(' ', 2 * (lvl-1)) || last_name org_chart,
employee_id, manager_id, job_id
FROM emp;