人大金仓数据库集合类型

116 阅读2分钟

关键字:

Associative Array、Nested Table、Varray

1.集合类型概述

集合类型是一种复合类型,包括以下三种:

关联数组(Associative Array)

嵌套表(Nested Table)

可变数组(Varray)

2.关联数组

关联数组是一组键值对。每个键都是一个唯一的索引,用于定位与之相关联的值,具有唯一键值的集合类型 其具有以下特性:

包含零或多个具有相同数据类型的元素

用户可按键值检索

键值可是整型等数值类型,也可是字符串等非数值类型

键值连续且有序

只能用于PL/SQL环境

语法:

	TYPE assoc_type_name  IS TABLE OF  element_type [ NOT NULL ]  INDEX BY index_type;
	index_type ::= INT | VARCHAR | VARCHAR2 | TEXT

3.可变数组

可变数组是一个数组,其元素数为从零(空)到声明的最大值之间,大小不等。

要访问可变数组变量的元素,可以使用语法 variable_name(index)。指数的下限为 1;上限是当前元素的数量。上限在添加或删除元素时会发生变化,但不能超过声明时指定的最大值。从数据库中存储和检索可变数组时,其索引和元素顺序保持对应。未初始化的可变数组变量是一个空集合。必须通过构造函数或者为其赋予一个非空的值来初始化它。下标类型为INT且从1开始

与嵌套表不同表现在:

可变数组在定义时需指定最大元素个数,且实际应用中不能超过该限制

可变数组的下标必须连续

删除元素时,可变数组不能使用delete(n)和delete(m,n)方法,但可使用delete()方法(即删除所有元素)

语法:

TYPE varray_type_name IS VARRAY(size_limit) OF  element_type [ NOT NULL ];

4.嵌套表

在数据库中,嵌套表是一种可以不指定顺序来存储未指定数量的行的类型。

从数据库中检索嵌套表值到 PL/SQL 嵌套表变量时,PL/SQL 会从 1 开始为行提供连续索引。使用这些索引, 可以访问嵌套表变量的各个行。从数据库中存储和检索嵌套表时,嵌套表的索引和行顺序可能会不稳定。当添加或删除元素时,嵌套表变量占用的内存量可以动态的增加或减少。未初始化的嵌套表变量是一个 NULL 集合。必须通过构造函数或为其赋予非空值来初始化它基于键-值对的集合类型。

与关联数组相比,它的键值只能为整型,即从1开始的连续值必须使用和其同名的构造函数进行初始化

语法:

TYPE nest_table_type_name IS TABLE OF  element_type  [ NOT NULL ];

更多信息,参见help.kingbase.com.cn/v8/index.ht…