我想通过使用plsql中的集合以升序显示数字。

我有下面的代码。它将以未排序的顺序显示数字,但我想以已排序的顺序显示它们

DECLARE
    TYPE num_asc IS
        TABLE OF NUMBER;
    rec_num   num_asc;
    v_var     NUMBER;
BEGIN
    rec_num := num_asc(10,21,13,14,52,16);
    FOR i IN rec_num.first..rec_num.last LOOP
        dbms_output.put_line (rec_num (i));
    END LOOP;
END;

最佳答案

使用SQL。当然,这是最少的代码,而且可能是最有效的方法。只需将集合类型更改为我们可以在table()函数中使用的类型:

DECLARE
    rec_num  sys.odcinumberlist;
BEGIN
    rec_num := sys.odcinumberlist(10,21,13,14,52,16);
    for i in (select * from table(rec_num) order by 1)
    loop
        dbms_output.put_line(i.column_value);
    end loop;
END;

10-05 20:55
查看更多