您的位置:首页 > 数据库 > Oracle

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

2015-06-11 15:17 495 查看

1. %TYPE的简单介绍

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

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

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

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

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

例子一

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;


例子二

这个例子中的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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: