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;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。