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

變長數(shù)組是一種元素數(shù)量可以從零到聲明的最大長度的數(shù)組。

語法

TYPE type_name IS VARRAY '(' number ')' OF datatype [NULL | NOT NULL] ';'

示例

變長數(shù)組的基本示例如下所示:

DECLARE
  TYPE varray_type IS VARRAY(10) OF INT; -- 聲明 varray 局部類型
  v varray_type := varray_type();  -- 創(chuàng)建變量, 并將它初始化為空
BEGIN
  v.extend(1); -- 擴建它的大小, 之后允許在索引為1的位置上賦值和取值
  v(1) := 1; -- 賦值
  RAISE NOTICE '%', v(1); -- 取值
END;

結(jié)果顯示如下:

NOTICE:  1
DO

該語法指定了您創(chuàng)建的類型名稱、變長數(shù)組的最大長度和元素類型。您可以使用該類型創(chuàng)建變量。以下是創(chuàng)建變長數(shù)組變量的一個示例:

DECLARE
  TYPE varray_type IS VARRAY(10) OF INT; -- 聲明 varray 局部類型
  v varray_type; -- 創(chuàng)建變量但不初始化, 此時狀態(tài)為 NULL
  v varray_type := varray_type();  -- 創(chuàng)建變量, 并將它初始化為空,實際長度為0
  v varray_type := varray_type(1, 2); -- 創(chuàng)建變量, 并初始化兩個元素, 實際長度為2
BEGIN
END;

您必須通過extend方法或是直接在初始化時分配出對應(yīng)的位置,然后才可以對該位置進行賦值和取值。變長數(shù)組的索引下標的下界為1,上界為當前存儲的元素個數(shù)。存儲的元素個數(shù)不能超過設(shè)定的最大值。如果您試圖分配超過最大長度的位置,PL/SQL會出現(xiàn)如下錯誤:

DECLARE
  TYPE varray_type IS VARRAY(10) OF INT;
  v varray_type := varray_type();
BEGIN
  v.extend(11); -- 分配11個位置
END;

結(jié)果顯示如下:

ERROR:  new varray size: 11 must be smaller than limit size: 10
CONTEXT:  SQL statement "CALL v.extend(11)"
PL/SQL function inline_code_block line 5 at CALL

元素類型可以是普通類型(例如,int,varchar等),也可以是記錄類型。

DECLARE
  TYPE record_type IS RECORD(id INT, name VARCHAR(10));
  TYPE varray_type IS VARRAY(10) OF record_type;
  v varray_type := varray_type();
BEGIN
  v.extend(1);
  v(1).id := 1;
  v(1).name := 'a';
  RAISE NOTICE '% %', v(1).id, v(1).name;
END;

結(jié)果顯示如下:

NOTICE:  1 a
DO