本文共 1144 字,大约阅读时间需要 3 分钟。
-- Start
关联数组(Associative Array)其实就是一个 MAP,键的类型可以是 VARCHAR2, VARCHAR, STRING, LONG 或 PLS_INTEGER。另外我们不能比较两个关联数组或检查关联数组是否为 NULL。
DECLARE -- 定义一个关联数组类型 MY_MAP,键的类型是 PLS_INTEGER,值得类型是 VARCHAR2 TYPE MY_MAP IS TABLE OF VARCHAR2(15) INDEX BY PLS_INTEGER; -- 定义一个类型为 MY_MAP 的关联数组变量 test1 test1 MY_MAP; i PLS_INTEGER;BEGIN -- 赋值 test1(1) := 'Value 1'; test1(2) := 'Value 2'; test1(3) := 'Value 3'; test1(4) := 'Value 4'; test1(5) := 'Value 5'; DBMS_OUTPUT.PUT_LINE('最小的键是: ' || test1.FIRST()); DBMS_OUTPUT.PUT_LINE('最大的键是: ' || test1.LAST()); DBMS_OUTPUT.PUT_LINE('关联数组的数量: ' || test1.COUNT()); DBMS_OUTPUT.PUT_LINE('关联数组的容量: ' || test1.LIMIT()); DBMS_OUTPUT.PUT_LINE('键值3 的上一个键是: ' || test1.PRIOR(3)); DBMS_OUTPUT.PUT_LINE('键值3 的下一个键是: ' || test1.NEXT(3)); -- 迭代关联数组 i := test1.FIRST(); WHILE i IS NOT NULL LOOP DBMS_OUTPUT.PUT_LINE('Key is ' || i || ', Value is ' || test1(i)); i := test1.NEXT(i); END LOOP; test1.DELETE(2); -- 删除第 2 个键和值 test1.DELETE(3, 5); -- 删除第 3 到第 5 个键和值 test1.DELETE(); -- 删除所有键和值END;/
--更多参见:
-- 声明:转载请注明出处
-- Last Edited on 2015-01-08
-- Created by ShangBo on 2015-01-03
-- End