本文主要是介绍炫“库”行动-人大金仓征文大赛—KingbaseES集合数据类型解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
KingbaseES PL/SQL 支持集合数据类型,集合数据类型也是一种复合数据类型,类似于编程语言中的数组。集合数据类型包括三种具体的类型:关联数组(Associative Array)、嵌套表(Nested Table)和可变数组(Varray)。
1 关联数组
1.1定义
关联数组(Associative Array):也称为索引表,是具有唯一键值的集合类型。
具有以下特性:
包含零或多个具有相同数据类型的元素;
用户可按键值检索;
键值可以是整型等数值类型,也可以是字符串等非数值类型;
键值连续且有序;
只能用于PL/SQL环境;
1.2 声明关联数组
语法定义如下:
TYPE assoc_type_name IS TABLE OF element_type [ NOT NULL ] INDEX BY index_type;
其中:
assoc_type_name :用户自定义关联数组名字
element_type:关联数组元素的数据类型,可以是标量数据类型,%type,%rowtype及用户自定义类型
index_type:关联数组索引数据类型,kingbase支持 INT | VARCHAR | VARCHAR2 | TEXT等类型
1.3示例
下面以具体的示例说明关联数组的使用:
\set SQLTERM /
DECLARE
TYPE my_assoc_array_type1 IS TABLE OF varchar(20) INDEX BY varchar(20); --声明关联数组类型
var1 my_assoc_array_type1; --声明关联数组类型变量
i varchar(20);
BEGIN --可关联数组变量赋值
var1('c1') :='kingbase';
var1('c2') :='tianjin';
--遍历关联数组每个元素值
i :=var1.first;
WHILE i is not null LOOP
DBMS_OUTPUT.PUT_LINE(var1(i));
i :=var1.next(i);
END LOOP;
END;
/
2 嵌套表
2.1 定义
嵌套表(Nested Table):像一个元素量任意的一维数组。
具有以下特点:
基于键-值对的集合类型;
与关联数组相比,它的键值只能为整型,即从1开始的连续值;
必须使用和其同名的构造函数进行初始化;
这篇关于炫“库”行动-人大金仓征文大赛—KingbaseES集合数据类型解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!