oracle学习之路(二)------数组类型/记录类型的使用

Oracle记录类型介绍

RECORD:用户自己定义数据类型,由单行多列的标量构成的复合数据类型。它将一个或多个标量封装成一个对象进行操作记录不能够总体拿来比較也不能够总体推断为空。能够总体拿来赋值。组成相似于多维数组。
将一个或多个标量封装成一个对象进行操作。是一种暂时复合对象类型。

记录的创建和赋值

  • 定义记录类型语法例如以下:
TYPE record_name IS RECORD(
   v1 data_type1  [NOT NULL]  [:= default_value ],
   v2 data_type2  [NOT NULL]  [:= default_value ],
   ......
   vn data_typen  [NOT NULL]  [:= default_value ] );
  • 一个记录类型的样例
 declare 
 TYPE T_Employee_rec is RECORD --定义记录的类型
(
c_FNumber T_Employee.FNumber%TYPE, --使用%TYPE获取此列的数据类型
c_FName VARCHAR(20),
c_FAge int,
c_FSalary NUMERIC(10,2)
);

T_Employee_rec1  T_Employee_rec;--声明记录类型变量
begin 
       ---给记录类型变量赋值
 select FNumber,FName,FAge,FSalary into T_Employee_rec1
 from T_Employee
 where FNumber='SALES002';
 dbms_output.put_line('FNumber='||T_Employee_rec1.c_FNumber);
 dbms_output.put_line('FName='||T_Employee_rec1.c_FName);
 dbms_output.put_line('FAge='|| to_char(T_Employee_rec1.c_FAge));
 dbms_output.put_line('FSalary='||to_char(T_Employee_rec1.c_FSalary));
end;

注意:一个记录类型的变量仅仅能保存从数据库中查询出的一行记录,若查询出了多行记录。就会出现错误。

oracle数组类型简单介绍

数据是具有同样数据类型的一组成员的集合。每一个成员都有一个唯一的下标,它取决于成员在数组中的位置。

在PL/SQL中,数组数据类型是VARRAY。

  • 定义VARRY数据类型语法例如以下
TYPE varray_name IS VARRAY(size) OF element_type [NOT NULL];

varray_name是VARRAY数据类型的名称,size是下整数,表示可容纳的成员的最大数量,每一个成员的数据类型是element_type。默认成员能够取空值,否则须要使用NOT NULL加以限制。

对于VARRAY数据类型来说。必须经过三个步骤,各自是:定义、声明、初始化

  • 数组类型的小样例
 -- Created on 2015/6/11 by LYH 
declare
--定义一个最多保存5个VARCHAR(25)数据类型成员的VARRAY数据类型
TYPE reg_varray_type IS VARRAY(5) of varchar(25);
--声明一个该VARRAY数据类型的变量
v_reg_varray reg_varray_type;

begin
  --用构造函数语法赋予初值
  v_reg_varray :=reg_varray_type ('中国', '美国', '英国', '日本', '法国');

  Dbms_Output.put_line('地区名称:'||v_reg_varray(2)||','||v_reg_varray(3)||','||v_reg_varray(4));

  Dbms_Output.put_line('赋值为null的第5个成员的值:'||v_reg_varray(5));
  v_reg_varray(5) :='俄罗斯';
  Dbms_Output.put_line('赋值为null的第5个成员的值:'||v_reg_varray(5));
end;
原文地址:https://www.cnblogs.com/yjbjingcha/p/6977932.html