PLSQL Language Referenc-PL/SQL集合和记录-记录变量-RECORD类型
RECORD类型 在PL/SQL块中定义的记录类型是局部类型,只有在块内部有效。仅当这个块是个独立的存储或包子程序时,才被存储在数据库中。 在包规范中定义的记录类型是一个公有成员,可以在包外面通过包名修饰符来引用它,包名.类型名。它一直存储在数据库中,直到使用drop package语句删除了包。 不能在方案层次...
PLSQL Language Referenc-PL/SQL集合和记录-记录变量
记录变量 可以采用下面的方法来定义记录变量: n 定义一个记录类型,然后定义该类型的变量。 n 使用%ROWTYPE声明记录变量,用以表示数据库表或视图的整行或部分行。 n 使用%TYPE定义与前面定义的记录变量具有相同类型的记录变量。 记录变量的初始值 记录变量的每个域的初始值...
PLSQL Language Referenc-PL/SQL集合和记录-在包规范中定义的集合
在包规范中定义的集合 在包规范中定义的集合类型不兼容于局部定义的或独立存储的集合类型。 pkg TYPEISTABLEOFNUMBER PROCEDURE();END; pkg PROCEDURE()IS ...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-PRIOR和NEXT方法
PRIOR和NEXT方法 这2个方法允许在集合中向前和向后移动,这对于遍历稀疏集合非常有用。 n PRIOR返回指定索引的前一个索引,如果前面有元素存在,否则返回NULL。 n NEXT返回指定索引的后一个索引,如果后面有元素存在,否则返回NULL。 TYPEISTABLEOFNUMBE...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-LIMIT方法
LIMIT方法 返回集合可以拥有的最大元素个数,如果集合没有上限,则返回NULL。只有可变数组有上限。 -- 关联数组 aa_type ; aa aa_type TYPEIS()OFINTEGER ...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-COUNT方法
COUNT方法 返回集合中元素的个数,不计算被DELETE的元素。 (1)可变数组的COUNT COUNT始终 = LAST,如果使用extend或trim增加或减小可变数组,则count随之改变。 TYPEIS()OFINTEGER :=(,3 ,7 print_count_and_...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-FIRST和LAST方法
FIRST和LAST方法 n 如果集合有至少一个元素,则FIRST和LAST分别返回第1个和最后一个元素的索引(会忽略掉被DELETE的元素); n 如果集合中只有一个元素,则FIRST和LAST返回相同的索引; n 如果集合为empty,则2者都返回NULL。 (1)关联数组的FIRST和LAST方法 对于以PLS_INTEGER索...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-EXISTS方法
EXISTS方法 判断可变数组或嵌套表的指定元素是否存在。 n exists(n),如果第n个元素存在,返回true,否则false; n 如果n超出索引范围,则返回false。 n 对于被delete的元素,它返回false。 --嵌套表TYPEISTABLEOFINTEGER :=(...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-EXTEND方法
EXTEND方法 向可变数组或嵌套表尾部添加元素。集合可以为EMPTY,但不能为NULL。 形式: n 向集合添加一个null元素。 n EXTEND(n),向集合添加n个null元素。 n EXTNED(n, i),向集合添加n个第i个元素的拷贝。 注意:如果集合中的元素有NOT NULL约束,则extend(n, i)是唯一可用...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-TRIM方法
TRIM方法 从可变数组或嵌套表尾部删除元素,有如下形式: n 如果集合中有至少一个元素,则从集合尾部移除一个元素,否则引发SUBSCRIPT_BEYOND_COUNT异常。 n TRIM(n),如果集合至少有n个元素,则从集合尾部移除n个元素,否则引发SUBSCRIPT_BEYOND_COUNT异常。 TRIM操作于集合的内部大小,即D...
PLSQL Language Referenc-PL/SQL集合和记录-集合方法-DELETE方法
集合方法 集合方法是一个PL/SQL子程序(或者是一个返回信息的函数,或者是操作集合的过程)。集合方法使得集合更容易被使用,应用程序更容易维护。 注意:对于NULL集合,EXISTS是唯一一个不会引发COLLECTION_IS_NULL异常的方法。 集合方法 DELETE 过程 ...
PLSQL Language Referenc-PL/SQL集合和记录-使用Multiset Conditions比较嵌套表
使用Multiset Conditions比较嵌套表 可以使用SQL MultisetConditions来比较嵌套表和测试它们的属性。 TYPEISTABLEOFNUMBER :=(,,); :=(,,); nt3 nested_typ nested_typ2313nt4 nested_typ nested_typ124 PROCEDURE(BO...
PLSQL Language Referenc-PL/SQL集合和记录-集合比较-比较嵌套表是否相等
比较嵌套表是否相等DECLARE dnames_tab ();-- 元素不是记录类型 :=(,,,); := dnames_tab'BBBB''CCCC''AAAA''DDDD' dept_names3 dnames_tab (,,); ...
PLSQL Language Referenc-PL/SQL集合和记录-集合比较-和NULL比较可变数组和嵌套表变量
集合比较 集合变量不能相互比较,也不能与NULL进行比较。 除了比较嵌套表相等和不相等之外,不能使用关系操作符比较2个集合变量,该限制也会应用于隐式比较,例集合变量不能出现在distinct,group by,order by 子句中。DECLARE Foursome VARRAY4 ();-- 可变数组 team Fo...
PLSQL Language Referenc-PL/SQL集合和记录-多维集合
多维集合 尽管集合只有一维,但可以构造一个多维集合,即一个集合的元素也是集合。 DECLARE (可以是锯齿形的 TYPEIS()OFINTEGER :=(,,); nt1 VARRAY10 t1 :=(,(,,),(,),); t...
PLSQL Language Referenc-PL/SQL集合和记录-集合变量赋值-将集合操作结果赋给嵌套表
将集合操作结果赋给嵌套表 可以将SQL的MULTISET操作或SET函数调用的结果赋值给嵌套表。 MULTISET操作符将2个嵌套表合并成一个嵌套表。2个嵌套表的元素必须具有可比较的数据类型;SET函数接收一个嵌套表参数,返回一个相同数据类型的嵌套表,它的元素都是不同的。(即排队了重复的元素) ...
PLSQL Language Referenc-PL/SQL集合和记录-集合变量赋值-给可变数组和嵌套表赋NULL值
给可变数组和嵌套表赋NULL值。 --嵌套表TYPEISTABLEOFVARCHAR230 -- 初始化为非 :=(,,,); empty_set dnames_tab NULL print_dept_names_status BEGIN &nbs...
PLSQL Language Referenc-PL/SQL集合和记录-集合变量赋值-数据的兼容性
集合变量赋值 有3种方式给集合变量赋值: n 调用构造器创建一个集合并将创建的集合赋值给集合变量。 n 使用赋值语句将另外已经存在的集合变更赋值给集合变量 n 以OUT,IN OUT类型参数将集合变量传递给子程序,在子程序内部对其进行赋值。 数据的兼容性 只当具有相同的数据类型...
PLSQL Language Referenc-PL/SQL集合和记录-集合构造器
集合构造器 它只适合于可变数组和嵌套表。关联数组没有构造器。 集合构造器,是一个系统定义的与集合类型具有相同名称的函数,该函数可以返回该集合类型的集合。 ([value[,value]...]) TYPEIS()OFVARCHAR215 :=();-- ...
PLSQL Language Referenc-嵌套表-嵌套表和数组间的重要区别(正确地使用嵌套表)
嵌套表和数组间的重要区别 从概念上讲嵌套表好像是一个有任意数量元素的一维数组,然而二者在以下方面是不同的: n 数组有声明数量的元素,而嵌套表没有,嵌套表的大小可以动态增长。 n 数组总是密集的。一个嵌套表在开始是密集的,但从中删除元素后,它就变成稀疏的了。 正确地使用...