欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PL/SQL 数组的使用

程序员文章站 2022-05-13 22:54:11
一、固定数组 1、在模式(schema)级创建VARRAY类型 语法: 其中, varray_type_name是一个有效的属性名称; n是varray中元素的数量(最大值); element_type是数组元素的数据类型。 可以使用ALTER TYPE语句更改变量的最大大小。 实例: 备注:在Or ......

一、固定数组

1、在模式(schema)级创建varray类型

语法:

create or replace type varray_type_name is varray(n) of <element_type>

其中,

  • varray_type_name是一个有效的属性名称;
  • nvarray中元素的数量(最大值);
  • element_type是数组元素的数据类型。

可以使用alter type语句更改变量的最大大小。

实例:

create or replace type namesarray is varray(3) of varchar2(10); 

备注:在oracle中,一个用户就是一个schema,表都是建立在schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,可以用 username.tablename的形式来访问。

 

2、在pl/sql块中创建varray类型

语法:

type varray_type_name is varray(n) of <element_type>

实例:

declare 
   type namesarray is varray(5) of varchar2(10); 
   type gradesarray is varray(5) of integer; 
   names namesarray; 
   marks gradesarray; 
   total integer; 
begin 
   names := namesarray('kavita', 'pritam', 'ayan', 'rishav', 'aziz'); 
   marks := gradesarray(98, 97, 78, 87, 92); 
   total := names.count; 
   dbms_output.put_line('总共有 '|| total || ' 名学生'); 
   for i in 1 .. total loop 
      dbms_output.put_line('姓名: ' || names(i) || ' 成绩: ' || marks(i)); 
   end loop; 
end;

结果:
总共有 5 名学生
姓名: kavita 成绩: 98
姓名: pritam 成绩: 97
姓名: ayan 成绩: 78
姓名: rishav 成绩: 87
姓名: aziz 成绩: 92

注意:

  • 在oracle环境中,varrays的起始索引始终为1
  • 可以使用varray类型的构造方法初始化varray元素,该方法与varray具有相同的名称;
  • varrays是一维数组
  • varray在声明时自动为null,并且必须在引用元素之前初始化它。

二、可变数组

declare 
  type org_table_type is table of varchar2(25)
  index by binary_integer;
  v_org_table org_table_type;
begin
  v_org_table(1) := '1';
  v_org_table(2) := '2';
  v_org_table(3) := '3';
  v_org_table(4) := '4';
  v_org_table(5) := '5';
  for i in v_org_table.first .. v_org_table.last loop
    dbms_output.put_line(v_org_table(i));
  end loop;
end;