日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

包中定義集合類型

您可以在包(package)中定義變長(zhǎng)數(shù)組、嵌套表以及關(guān)聯(lián)數(shù)組三種集合類型。

注意事項(xiàng)

與局部的集合類型不同的是,該類型會(huì)隨著包的定義被持久化在系統(tǒng)表中,在包刪除時(shí)被級(jí)聯(lián)刪除。

示例

以下是一個(gè)包集合類型和局部集合類型轉(zhuǎn)換的示例。

CREATE OR REPLACE PACKAGE pkg AS
  TYPE NumberList IS TABLE OF NUMBER;
  PROCEDURE print (nums NumberList);
END pkg;

CREATE OR REPLACE PACKAGE BODY pkg AS
  PROCEDURE print (nums NumberList) IS
  BEGIN
    FOR i IN nums.FIRST..nums.LAST LOOP
      RAISE NOTICE '%', nums(i);
    END LOOP;
  END;
END;

DECLARE
  TYPE CharList IS TABLE OF VARCHAR(10);
  n1 pkg.NumberList := pkg.NumberList(1,2); -- 使用包的集合類型
  n2 CharList := CharList('3','4'); -- 使用局部集合類型
BEGIN
  pkg.print(n1); -- 傳入包的集合類型的變量
  pkg.print(n2); -- 傳入局部變量, 但會(huì)根據(jù)元素類型進(jìn)行類型轉(zhuǎn)換
END;

結(jié)果顯示如下:

NOTICE:  1
NOTICE:  2
NOTICE:  3
NOTICE:  4
DO

以下是一個(gè)包集合類型和全局集合類型轉(zhuǎn)換的示例。

-- 聲明全局集合類型
CREATE OR REPLACE TYPE NumList IS TABLE OF NUMBER; 

-- 使用上一個(gè)示例的包過程
DECLARE
  n NumList := NumList(5,6);
BEGIN
  pkg.print(n);
END;

結(jié)果顯示如下:

NOTICE:  5
NOTICE:  6
DO