数据仓库服务 GAUSSDB(DWS)-数组:EXTEND

时间:2023-11-11 15:05:02

EXTEND

EXTEND函数主要是为了兼容Oracle的两种用法。在GaussDB(DWS)中,数组会自动增长,EXTEND函数不是必须的。如果是新写的存储过程,完全没有必要使用EXTEND函数。

EXTEND函数可以对数组进行扩展,EXTEND有两种调用方式。

  • 方式一:

    EXTEND包含一个整型入参,表示数组向后扩展size大小的长度,EXTEND后COUNT和LAST函数的值也会有相应的变化。

    用法如下:

    varray.EXTEND(size)

    其中varray.EXTEND这种无参的调用默认会向后扩展1位等价于varray.EXTEND(1)

  • 方式二:

    EXTEND包含两个整型入参,第一个参数代表向后扩展size大小的长度,第二个参数表示扩展后的数组元素值和之下标为index的元素相同。

    用法如下:

    varray.EXTEND(size, index)

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
--演示在存储过程中对数组EXTEND函数的用法。
CREATE OR REPLACE PROCEDURE test_varray
AS 
    TYPE varray_type IS VARRAY(20) OF INT; 
    v_varray varray_type; 
BEGIN 
    v_varray := varray_type(1, 2, 3);
    v_varray.extend(3);
    DBMS_OUTPUT.PUT_LINE('v_varray.count=' || v_varray.count); 
    v_varray.extend(2,3);
    DBMS_OUTPUT.PUT_LINE('v_varray.count=' || v_varray.count); 
    DBMS_OUTPUT.PUT_LINE('v_varray(7)=' || v_varray(7)); 
    DBMS_OUTPUT.PUT_LINE('v_varray(8)=' || v_varray(7)); 
END; 
/ 
support.huaweicloud.com/devg-dws/dws_04_0517.html