oracle数据库学习之路(三)-----%TYPE和%ROWTYPE

1. %TYPE的简单介绍

定义一个变量,其数据类型与已经定义的某个数据变量(尤其是表的某一列)的数据类型相一致,这时可以使用%TYPE。

使用%TYPE特性的优点在于:

  • 所引用的数据库列的数据类型可以不必知道;
  • 所引用的数据库列的数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。

这里仍然写两个%TYPE在记录类型中使用的例子

  1. 例子一
 DECLARE
--使用%TYPE来找到一列的类型
 TYPE t_record is RECORD(
      t_no       T_Employee.Fnumber%TYPE,
      t_name     T_Employee.Fname%TYPE,
      t_age      T_Employee.Fage%TYPE,
      t_salary   T_Employee.Fsalary%TYPE
 );
 -- 声明接收数据的变量
 t_record1 t_record;

 BEGIN

 SELECT Fnumber,Fname,Fage,Fsalary
 into t_record1
 from T_Employee 
 where Fnumber ='SALES002';

 Dbms_Output.put_line
 (t_record1.t_no||'\'||t_record1.t_name||'\'||TO_CHAR(t_record1.t_age)||'\'||TO_CHAR(t_record1.t_salary));

 END;
  1. 例子二

    这个例子中的where条件使用一个预先定义的变量来确定

 DECLARE
   v_empno emp.empno%TYPE :=&no;
   Type t_record is record (
        v_name   emp.ename%TYPE,
        v_sal    emp.sal%TYPE,
        v_date   emp.hiredate%TYPE);
   Rec t_record;
BEGIN
   SELECT ename, sal, hiredate INTO Rec FROM emp WHERE empno=v_empno;
   DBMS_OUTPUT.PUT_LINE(Rec.v_name||'---'||Rec.v_sal||'--'||Rec.v_date);
END;

使用%ROWTYPE

**PL/SQL 提供%ROWTYPE操作符, 返回一个记录类型, 其数据类型和数据库表的数据结构相一致。

  使用%ROWTYPE特性的优点在于:

  l 所引用的数据库中列的个数和数据类型可以不必知道;

  l 所引用的数据库中列的个数和数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。 **
一个例子

DECLARE
    v_empno emp.empno%TYPE :=&no;
    rec emp%ROWTYPE;
BEGIN
    SELECT * INTO rec FROM emp WHERE empno=v_empno;
    DBMS_OUTPUT.PUT_LINE('姓名:'||rec.ename||'工资:'||rec.sal||'工作时间:'||rec.hiredate);
END;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值