DECLARE
TYPE num_tt IS TABLE OF INT;
num_t num_tt:=num_tt();
mid_val INT;
mid_j INT;
BEGIN
num_t.extend(20);
FOR i IN 1..20 LOOP
num_t(i) := trunc(dbms_random.value(200,100000));
END LOOP;
dbms_output.put_line('before sort:');
FOR i IN 1..num_t.count LOOP
dbms_output.put_line(num_t(i)||',');
END LOOP;
FOR i IN 2..num_t.count LOOP
mid_val := num_t(i);
mid_j := i - 1;
WHILE(mid_j > 0) LOOP
IF(mid_val < num_t(mid_j)) THEN
num_t(mid_j + 1) := num_t(mid_j);
ELSE
EXIT;
END IF;
mid_j := mid_j - 1;
END LOOP;
num_t(mid_j+1):= mid_val;
END LOOP;
dbms_output.put_line('after sort:');
FOR i IN 1..num_t.count LOOP
dbms_output.put_line(num_t(i)||',');
END LOOP;
END;