在包规范中定义的集合类型不兼容于局部定义的或独立存储的集合类型。
|
--在包规范中定义集合类型 CREATE OR REPLACE PACKAGE pkg AS TYPE NumList IS TABLE OF NUMBER; PROCEDURE print_numlist (nums NumList); END pkg;
CREATE OR REPLACE PACKAGE BODY pkg AS PROCEDURE print_numlist (nums NumList) IS BEGIN FOR i IN nums.FIRST..nums.LAST LOOP DBMS_OUTPUT.PUT_LINE(nums(i)); END LOOP; END; END pkg;
DECLARE --局部类型 TYPE NumList IS TABLE OF NUMBER; n1 pkg.NumList := pkg.NumList(2,4); --包规范中类型 n2 NumList := NumList(6,8); --局部类型 BEGIN pkg.print_numlist(n1); -- 成功 pkg.print_numlist(n2); -- 错误
END;
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1116090/ ,如需转载,请注明出处,否则将追究法律责任。