YY-LIN 发表于 2018-10-24 08:35:10

pl/sql三种特殊数据类型

  pl/sql除了可以使用Orecle规定的基本类型外,还提供了3种特殊的数据类型%type类型、record类型和%rowtype类型。
  【%type类型】
  使用%type可以声明一个与指定列名称相同的数据类型,例如 :v_id emp.id%type 是声名一个和emp表中id字段相同类型的变量。
  使用%type定义变量有两点好处:第一,定义变量时不必查看表中各个列的数据类型;第二,如果表中列数据类型进行了修改,使用%type定义的变量会自动进行调整。
  【 record类型】
  也称记录类型,使用record的变量可以存储多个列值组成的一行数据。使用方式如下:
  declare
  type emp_type is record(         ---------------------声明record类型emp_type
  v_id emp.id%type;
  v_name emp.name%type;
  )
  empInfo emp_type;                  -------------------声明emp_type类型的变量empInfo
  begin

  select>  /*
  查询emp表中id为1的记录赋给empInfo
  */
  dbms_output.put_line(empInfo.v_id||'==========>'||empInfo.v_name);
  end;
  【    】
  %rowtype类型的变量结合了%type类型和record类型的优点,可以根据表中行的结构定义数据类型,用来存储一条记录。例如:
  declare
  empInfo emp%rowtype;
  begin

  select * into empInfo from emp where>  dbms_output.put_line(empInfo.id||'========>'||emp.name);
  end;

页: [1]
查看完整版本: pl/sql三种特殊数据类型