云数据库 GAUSSDB-集合:示例

时间:2024-11-02 18:53:07

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--演示在存储过程中对集合进行操作。
openGauss=# CREATE OR REPLACE PROCEDURE table_proc AS
DECLARE
       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 AS
DECLARE
       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-gaussdb/devg_03_0690.html