oracle heap_sort
CREATE OR REPLACE PACKAGE heap_sort_pkgAS
TYPE num_arr_tt IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
PROCEDURE add_nums(num_arr_inst IN OUT num_arr_tt, dvalue INT);
PROCEDURE del_nums(num_arr_inst IN OUT num_arr_tt);
FUNCTIONget_maxval(num_arr_int INOUT num_arr_tt) RETURN INT;
END heap_sort_pkg;
CREATE OR REPLACE PACKAGE BODY heap_sort_pkg
AS
PROCEDURE add_nums(num_arr_inst IN OUT num_arr_tt, dvalue INT)
AS
dest_loc INT := num_arr_inst.count + 1;
tmp_locINT := trunc(dest_loc / 2);
BEGIN
WHILE(tmp_loc > 0 AND dvalue > num_arr_inst(tmp_loc)) LOOP
num_arr_inst(dest_loc) := num_arr_inst(tmp_loc);
dest_loc := tmp_loc;
tmp_loc := trunc(dest_loc / 2);
END LOOP;
num_arr_inst(dest_loc) := dvalue;
END add_nums;
PROCEDURE del_nums(num_arr_inst IN OUT num_arr_tt)
AS
lvalue INT;
rvalue INT;
umarkINT := 1;
tmarkINT := umark;
tvalue INT := num_arr_inst(num_arr_inst.count);
BEGIN
IF(num_arr_inst.count
页:
[1]