上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
实例014 使用记录类型输出数据表中的一行
【实例描述】
实例013介绍了PL/SQL的常量和变量的使用,除此之外,PL/SQL还提供了两个属性数据类型。当声明一个变量的值是数据库中的一行或者是数据库中某列时,可以直接使用属性类型来声明。其中,属性数据类型% ROWTYPE表示引用数据库中的一行(一条记录),因此也将其称为记录类型。
本实例从数据表STUDENT中获取学号为“120004”的学生信息,并将其姓名、年龄、性别和所在班级输出在SQL*Plus控制端中,其中数据表STUDENT的初始数据如图1-28所示,本实例的执行结果如图1-35所示。
图1-35 使用记录类型输出数据表中的一行
【实现代码】
SQL> SET SERVEROUTPUT ON SQL> DECLARE 2 mystu STUDENT%ROWTYPE; 3 BEGIN 4 SELECT * INTO mystu FROM STUDENT WHERE sno='120004'; 5 DBMS_OUTPUT.PUT_LINE(MYSTU.SNAME); 6 DBMS_OUTPUT.PUT_LINE(MYSTU.SAGE); 7 DBMS_OUTPUT.PUT_LINE(MYSTU.SGENTLE); 8 DBMS_OUTPUT.PUT_LINE(MYSTU.SDEPT); 9 END; 10 /
【范例解析】
本实例使用了%ROWTYPE记录数据类型,其引用数据库表中的一行作为数据类型,即RECORD类型(记录类型),它是PL/SQL附加的数据类型。表示一条记录,就相当于C#中的一个对象。可以使用“.”来访问记录中的属性。
上述代码中首先声明了mystu对象,其数据类型为STUDENT %ROWTYPE,表示其为数据表STUDENT的一行,然后通过SELECT语句从数据表中获取一条记录到mystu对象中,最后通过DBMS_OUTPUT.PUT_LINE语句输出该行记录的某些属性。
注意:访问和调用记录类型对象的属性需要使用符号“.”,这与C/C++语言中引用结构体等数据类型的属性相同