CREATE PACKAGE PKG
AS
TYPE NUMLIST IS TABLE OF NUMBER;
PROCEDURE PRINT_NUMLIST(NUMS NUMLIST);
END PKG;
/
CREATE 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); -- type from the package.
N2 NUMLIST := NUMLIST(6,8); -- local type.
BEGIN
PKG.PRINT_NUMLIST(N1); -- type from pkg is legal
-- The packaged procedure cannot accept a value of the local type (n2)
-- pkg.print_numlist(n2); -- Causes a compilation error.
END;
/
Incompatibility Between Package and Local Collection Types
0 comments:
Post a Comment