集合精解
发布时间:2023-12-18 02:14:53 来源:文档文库
小
中
大
字号:
>>>>Oracle中的集合(精解集合精解>>>>>>>>Oracle中一共有三种集合类型:index-by表、嵌套表和可变数组。其中index-by表只能用于PL/SQL中,而不能用于数据库表定义。嵌套表可以存储在数据库表中。index-by表和嵌套表统称为PL/SQL表。可变数组被声明为具有固定数目的元素的集合,而PL/SQL表没有声明上限。一、index-by表index-by表在句法上类似于C或JAVA中的数组。首先需要定义表的属性,然后在声明使用。句法:TYPEtabletypeISTABLEOFtypeINDEXBYBINARY_INTEGER;其中tabletype是所定义的新类型的类型名,type是一个预定义的类型,或通过%TYPE或%ROWTYPE对一个类型的引用。INDEXBYBINARY_INTEGER子句是该表定义的一部分。这个子句对于嵌套表是不存在的。一旦声明了类型和变量,就可以引用其中的单个元素:tablename(index其中tablename是表的名称,index是一个BINARY_INTEGER类型的变量,或者是一个可以转换成BINARY_INTEGER类型的变量或表达式。注意:a、index-by表是无大小约束的。其行数的唯一限制(除可用内存外就是它的关键字是BINARY_INTEGER类型的,因此要受到BINARY_INTEGER类型所能表示数值的约束(-2147483647~2147483647。b、index-by表中的元素不一定要按任何特定顺序排列。因为它们不像数组那样在内存中是连续存储的,所以其元素可以借助于任意关键字插入(如果你从PL/SQL中把一个index-by表传递到C或JAVA的主机数组,其元素应该从1开始依次编号>>>>。c、用于index-by表的关键字没有必要是有序的。任何BINARY_INTEGER值或表达式都可以用作表的索引。d、关键字的类型是BINARY_INTEGER、PLS_INTEGER\VARCHAR2。e、index-by表类似于数据库表,它有>>>>key和value两列。key的类型是BINARY_INTEGER、PLA_INTEGER或VARCHAR2,而value的类型是在定义中指定的任何数据类型,可以是简单数值,也可以是记录,或者是对象,也可以是集合。如果value的值是一条记录,那么可以使用table(index.field来引用该记录的字段。f、对于index-by表中的元素i赋值时,如果该元素i不存在,实际上会创建一个元素i