PL/SQL集合

PL/SQL集合

一,PL/SQL表

它只能作为PL/SQL类型,不能作为表列类型。

下标可以为负值,并且元素个数无限制。

下标类型key_type: 包括BINARY_INTEGER、PLS_INTEGER、VARCHAR2。

语法:

TYPE  type_name  IS  TABLE  OF  element_type

[NOT  NULL]  INDEX  BY key_type;

identifier type_name;

 

例如:

DECLARE
   TYPE category_table_type IS TABLE OF VARCHAR2 (40)
      INDEX BY VARCHAR2 (40);

   category_table   category_table_type;
BEGIN
   category_table ('长沙') := '长沙,我爱你!';
   DBMS_OUTPUT.put_line (category_table ('长沙'));
END;

 

第二,嵌套表

可以作为表列的数据类型使用。

当使用嵌套表元素时,需要使用构造方法初始化嵌套表变量。

下标从1开始计算。

 

语法:

TYPE type_name IS TABLE OF element_type;

identifier  type_name;

 

例子:

DECLARE
   TYPE category_table_type IS TABLE OF tb_out_service.servicename%TYPE;

   category_table   category_table_type;
BEGIN
   category_table := category_table_type ('全省', '长沙', '常德');

   SELECT servicename
     INTO category_table (3)
     FROM tb_out_service
    WHERE serviceid = '&serviceid';

   DBMS_OUTPUT.put_line (category_table (1));
   DBMS_OUTPUT.put_line (category_table (2));
   DBMS_OUTPUT.put_line (category_table (3));
END;

 

第三,变长数组(VARRAY)

需要使用构造方法初始化VARRAY变量。

语法:

TYPE type_name is VARRAY(size_limit) OF element_type [NOT NULL];

identifier type_name;

你可能感兴趣的:(PL/SQL集合)