– die laengste Zeitspanne die zwischen zwei hire_dates liegt

procedure longest_time_wo_hire
(
  p_time_wo_hire out number
) 
as
  v_longest_span number := 0;
  v_span number;
  v_hire_date_prev employees.hire_date%type := null;
begin
  for r_employee in c_employees loop
     if v_hire_date_prev is not null then
        v_span := r_employee.hire_date - v_hire_date_prev;
     end if;
     if  v_span > v_longest_span then
         v_longest_span := v_span;
         p_time_wo_hire := v_longest_span;
     end if;
     dbms_output.put_line(v_longest_span);
     v_hire_date_prev := r_employee.hire_date;     
  end loop;
end;

SQL

with ord_hd as (
select last_name,
       hire_date
  from employees
  order by hire_date asc
  ),
ord_hd_rn as (
select rownum rn, last_name, hire_date from ord_hd
)
select rn, 
       hire_date, 
       last_name,
       prior hire_date,
       prior last_name,
       hire_date - prior hire_date span
       from ord_hd_rn connect by prior rn = rn - 1
       start with rn = 1
order by span desc