PL/SQL 数组的使用

一、固定数组

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;

 

转载于:https://www.cnblogs.com/Jimc/p/9541900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值