云数据库 GaussDB-集合:示例

时间:2023-11-01 16:22:04

示例

 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243
--演示在存储过程中对集合进行操作。openGauss=# CREATE OR REPLACE PROCEDURE table_proc ASDECLARE       TYPE TABLE_INTEGER IS TABLE OF INTEGER;--定义集合类型       TABLEINT TABLE_INTEGER := TABLE_INTEGER();  --声明集合类型的变量 BEGIN        TABLEINT.extend(10);         FOR I IN 1..10 LOOP                 TABLEINT(I) := I;        END LOOP;        DBE_OUTPUT.PRINT_LINE(TABLEINT.COUNT);         DBE_OUTPUT.PRINT_LINE(TABLEINT(1));         DBE_OUTPUT.PRINT_LINE(TABLEINT(10)); END;  /--调用该存储过程。openGauss=# CALL table_proc();--删除存储过程。openGauss=# DROP PROCEDURE table_proc;--演示在存储过程中对嵌套集合进行操作。openGauss=# CREATE OR REPLACE PROCEDURE nest_table_proc ASDECLARE       TYPE TABLE_INTEGER IS TABLE OF INTEGER;--定义集合类型       TYPE NEST_TABLE_INTEGER IS TABLE OF TABLE_INTEGER;--定义集合类型       NEST_TABLE_VAR NEST_TABLE_INTEGER; --声明嵌套集合类型的变量BEGIN        FOR I IN 1..10 LOOP                 NEST_TABLE_VAR(I)(I) := I;        END LOOP;        DBE_OUTPUT.PRINT_LINE(NEST_TABLE_VAR.COUNT);         DBE_OUTPUT.PRINT_LINE(NEST_TABLE_VAR(1)(1));         DBE_OUTPUT.PRINT_LINE(NEST_TABLE_VAR(10)(10)); END;  /--调用该存储过程。openGauss=# CALL nest_table_proc();--删除存储过程。openGauss=# DROP PROCEDURE nest_table_proc;
support.huaweicloud.com/centralized-devg-v2-opengauss/devg_03_0688.html