変動配列(Varrayとも呼ばれ、Variable Arrayの略称)は、順序付き要素を格納する集合であり、すべての要素が同一のデータ型を持ち、各要素のインデックスはその配列内での位置に対応します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionではMySQLモードのみが提供されています。
変動配列にはサイズの制限があります。変動配列を作成する際には、変動配列の最大長を指定する必要があります。
変動配列を作成するための簡単な構文は以下のとおりです:
TYPE varray_name IS VARRAY( size ) OF element_type [ NOT NULL ] ;
ここで、varray_name は変動配列のデータ型名、size は正の整数で、収容可能な配列要素の最大数を表します。各要素のデータ型は element_type です。デフォルトでは、要素はNULL値を取ることができますが、そうでない場合は NOT NULL を使用して制限する必要があります。
例:変動配列の作成
obclient> DECLARE
TYPE players IS VARRAY(5) OF VARCHAR2(20);
team PLAYERS := players('Andrew', 'Barton', 'Conrad', 'Dick','Edward');
PROCEDURE print_team (heading VARCHAR2) IS
BEGIN
DBMS_OUTPUT.PUT_LINE(heading);
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(i || '.' || team(i));
END LOOP;
DBMS_OUTPUT.PUT_LINE('---');
END;
BEGIN
print_team('First Team:');
team(2) := 'Albert';
team(5) := 'George';
print_team('Second Team:');
team := players('Charles', 'Carl', 'James', 'Gary','Brian');
print_team('Third Team:');
END;
/
Query OK, 0 rows affected
First Team:
1.Andrew
2.Barton
3.Conrad
4.Dick
5.Edward
---
Second Team:
1.Andrew
2.Albert
3.Conrad
4.Dick
5.George
---
Third Team:
1.Charles
2.Carl
3.James
4.Gary
5.Brian
---
変動配列は、以下のシナリオに適しています:
要素の最大数が既知の場合。
通常、要素へのアクセスは順番に行われます。
変動配列はすべての要素を同時に格納または検索しなければならないため、多数の要素があるシナリオにはあまり適していません。