• Oracle的%type和%rowtype


    1 %TYPE说明

    为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供 了%TYPE定义方式。当被参照的那个变量的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程 序了。当不能确切地知道被参照的那个变量的数据类型时,就只能采用这种方法定义变量的数据类型。

    2 %ROWTYPE说明

    如果一个表有较多的列,使用%ROWTYPE来定义一个表示表中一行记录的变量,比分别使用%TYPE来定义表示表中各个列的变量要简洁得多,并且不容易遗漏、出错。这样会增加程序的可维护性。

       为了使一个变量的数据类型与一个表中记录的各个列的数据类型相对应、一致,Oracle提供%ROWTYPE定义方式。当表的某些列的数据类型改变了之后, 这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。当不能确切地知道被参照的那个表的结构及其数据类型时,就只能采用这种方法定义变量的数据类型。

       一行记录可以保存从一个表或游标中查询到的整个数据行的各列数据。一行记录的各个列与表中一行的各个列有相同的名称和数据类型。

      例如: v_info emp%ROWTYPE; //该类型为emp表中的一行数据类型

                   v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型 

    下面是一个例子:

    Oracle代码:

    •  1   例如: v_info emp%ROWTYPE; //该类型为emp表中的一行数据类型
       2 
       3         v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型 
       4 
       5 下面是一个例子:
       6 
       7 Oracle代码:
       8 declare   
       9     r_emp emp%ROWTYPE;   --该类型为emp表中一行的类型   
      10 cursor c_emp is SELECT * FROM emp ;   
      11 BEGIN   
      12   OPEN c_emp;   
      13   LOOP   
      14     FETCH c_emp into r_emp;     --游标中查询出来的一行into进定义的变量r_emp中   
      15     EXIT WHEN c_emp%NOTFOUND;   
      16     dbms_output.put_line('员工姓名:' || r_emp.ename);      
      17   END LOOP;   
      18   CLOSE c_emp;   
      19 END;  
  • 相关阅读:
    3)小案例三,加乐前端入口index.php
    C语言中传值和C++的传引用
    2)小案例步骤2,添加工厂类
    1)小案例步骤一
    1)public,provite和protect不能放在函数函数头
    88)PHP,PDOStatement对象
    NET 中system.IO(Stream) 的学习笔记二
    c#中的char byte string 类型之间的转换
    字符集和字符编码(Charset & Encoding)
    c#window服务程序
  • 原文地址:https://www.cnblogs.com/ChinazhouWang/p/Oracle.html
Copyright © 2020-2023  润新知