Oracle 自定义数据类型Type

Oracle 自定义类型的种类

记录数据类型(Record)和记录表类型(Table),其中记录数据类型Record存储是一条记录,记录表类型Table用来存储多条记录。如果记录数据类型Record是一维数组的话,记录表类型Table就是二维数组。

自定义类型有两种写法:TYPE……IS和CREATE TYPE ……,两者区别在于:前者一般在存储过程和函数中定义,其作用域是所在过程或函数,而后者声明对象类型,对象类型则是作为一个数据库对象(像表、索引、视图、触发器一样,是一个数据库对象),可以过程或函数中使用,还可以在定义表时,作为字段的类型。

一、TYPE type_name IS RECORD 定义记录数据类型
定义语法:

TYPE type_name IS RECORD (
              字段名1     数据库变量类型1,
              字段名2     数据库变量类型2,
              ...
              字段名n     数据库变量类型n
      );
      其中type_name:自定义类型的名称

应用例子

DECLARE 
  TYPE type_Employee IS RECORD(
          name VARCHAR2(100),
          age  NUMBER(3),
          wage NUMBER(7,2)
  );

  v_employs type_Employee;
  v_name VARCHAR2(100);
  v_age  NUMBER(3);
  v_wage NUMBER(7,2);
  i integer;
BEGIN
  select name, age, wage into v_employs from Employees where EmployeesId = '750adfd0-f8cd-4a64-a2f8-736f8802ec87';
  v_name := v_employs.name;
  v_age := v_employs.age;
  v_wage := v_employs.wage;
  dbms_output.put_line(v_name);
  dbms_output.put_line(v_wage);
  dbms_output.put_line(v_age);
END;
原文地址:https://www.cnblogs.com/yuanshuo/p/12691303.html