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

时间:2025-01-26 10:51:28

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 9101112131415
--演示在存储过程中对数组EXTEND函数的用法。CREATE OR REPLACE PROCEDURE test_varrayAS     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-910-dws/dws_04_0517.html