声明关联数组常量,必须创建一个函数,该函数可以使用初始值来填充关联数组,而后在常量的声明中调用该函数。
|
CREATE OR REPLACE PACKAGE My_Types AUTHID DEFINER IS --关联数组 TYPE My_AA IS TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER; --该函数相当于可变数组和嵌套表的构造器 FUNCTION Init_My_AA RETURN My_AA; END My_Types;
CREATE OR REPLACE PACKAGE BODY My_Types IS FUNCTION Init_My_AA RETURN My_AA IS Ret My_AA; BEGIN Ret(-10) := '-ten'; Ret(0) := 'zero'; Ret(1) := 'one'; Ret(2) := 'two'; Ret(3) := 'three'; Ret(4) := 'four'; Ret(9) := 'nine'; RETURN Ret; END Init_My_AA; END My_Types; DECLARE --定义关联数组常量 v CONSTANT My_Types.My_AA := My_Types.Init_My_AA(); BEGIN DECLARE Idx PLS_INTEGER := v.FIRST(); BEGIN WHILE Idx IS NOT NULL LOOP DBMS_OUTPUT.PUT_LINE(TO_CHAR(Idx, '999')||LPAD(v(Idx), 7)); Idx := v.NEXT(Idx); END LOOP; END;
END;
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1107192/ ,如需转载,请注明出处,否则将追究法律责任。