This is an old revision of the document!
PROCEDURE teilnehmer_index_by_varchar is
type teilnehmer_type IS RECORD
     (name        varchar2(25),
      geschlecht  varchar2(25));
TYPE teilnehmer_table_type IS TABLE OF varchar2(25)
      INDEX BY varchar2(25);
tn teilnehmer_table_type;
v_i varchar2(25);
BEGIN
tn('Mark') := 'M';
tn('Karin') := 'W';
tn('Albert') := 'M';
tn('Gökhan') := 'M';
tn('Natalya') := 'W';
v_i := tn.first;
while v_i is not null loop
  dbms_output.put_line(v_i||' '||tn(v_i));
  v_i := tn.next(v_i);
end loop;
END; -- Procedure
PROCEDURE SALARY_DIFF_VC
   IS
cursor bonus_salary is
  SELECT * FROM bonus
    order by salary desc;
TYPE bonus_table_type IS TABLE OF bonus%rowtype
      INDEX BY varchar2(100);
bonus_table bonus_table_type;
bonus_salary_rec bonus%rowtype; 
  
v_index      varchar2(100);
BEGIN
open bonus_salary;
   loop
     fetch bonus_salary into bonus_salary_rec;
     exit when bonus_salary%notfound;
     bonus_table(bonus_salary_rec.first_name||' '||bonus_salary_rec.last_name) 
        := bonus_salary_rec;
 
   end loop;
close bonus_salary;
v_index := bonus_table.first;   
for j in 1..bonus_table.count loop
  dbms_output.put_line(j||' '||
                       bonus_table(v_index).first_name ||' '||
                       bonus_table(v_index).last_name  ||' '||
                       bonus_table(v_index).salary);
  v_index := bonus_table.next(v_index);
end loop;   
END; -- Procedure