ORACLE中RECORD的使用

一、概念

定义记录数据类型。它类似于C语言中的结构数据类型(STRUCTURE)PL/SQL提供了将几个相关的、分离的、基本数据类型的变量组成一个整体的方法,即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]);
 
  
RECORD1 RECORD_NAME;--声明记录类型变量 

三、使用举例

先定义一个只与wms_task表中某几个列的数据类型相同的记录数据类型re_inv,然后声明一个该数据类型的记录变量re_inv_01。在使用RECORD数据类型的变量时要用“.”运算符指定记录变量名限定词。

    一个记录类型的变量只能保存从数据库中查询出的一行记录,如果查询出了多行记录,就会出现错误。

declare
type re_inv is record (
item_code varchar2(32),
item_name varchar2(32),
supply_code varchar2(10),
supply_name varchar2(32),
qty float
);
re_inv_01 re_inv;

begin

  select code1,name1,code2 ,name2 ,qty  into re_inv_01
  from wms_task 
  where id=100;

  insert into loc_inventory(item_code,item_name,supply_code,supply_name,qty) 
  values(re_inv_01.item_code,re_inv_01.item_name,re_inv_01.supply_code,
  re_inv_01.supply_name,re_inv_01.qty);
  commit;
end;



你可能感兴趣的:(数据库)