Oracle记录类型(record)使用
RECORD——存储单行多列结构的数据.
- RECORD:用户自己定义数据类型,由单行多列的标量构成的复合数据类型。它将一个或多个标量封装成一个对象进行操作记录不能够总体拿来比較也不能够总体推断为空。能够总体拿来赋值。组成相似于多维数组。
- 将一个或多个标量封装成一个对象进行操作。是一种暂时复合对象类型。使用记录类型变量时必须先定义记录的结构,然后再定义记录类型的变量。
TYPE语句定义记录类型的语法形式:
TYPE 记录名 IS RECORD (field1_name data_type [not null] [:=|default value], … fieldn_name data_type [not null] [:=|default value]);
【实例】定义一个记录类型rec_product,并使用该记录变量存储产品编号为1的产品的编号、名称、单价、单位数量
DECLARE TYPE rec_product IS RECORD (Prod_ID number, Prod_Name nvarchar2(40), Quant_PerUnit nvarchar2(20), Unit_Price number(38,3) ); r_prod rec_product; BEGIN SELECT productid, productname, quantityperunit,unitprice INTO r_prod FROM products WHERE productid=1; Dbms_output.put_line(r_prod. Prod_ID); Dbms_output.put_line(r_prod. Prod_Name); Dbms_output.put_line(r_prod. Quant_PerUnit); Dbms_output.put_line(r_prod. Unit_Price); END;
注意:
- 一个PL/SQL RECORD必须包含一个或多个字段:这些字段的数据类型可以是标量类型、RECORD类型或PL/SQL表类型。
- 一般在PL/SQL块中从表中取出一行进行处理时用PL/SQL RECORD。
- SELECT语句查询的列值的数量与顺序,必须与创建记录类型变量中定义的字段数量和顺序相匹配。
- 一个记录类型的变量仅仅能保存从数据库中查询出的一行记录,若查询出了多行记录。就会出现错误。