--记录,类似于对象(先定义一个记录,然后定义一个该记录类型的引用)
--普通定义方式
DECLARE TYPE Student IS RECORD( sid number, sname varchar(20), sclass varchar(10) ); stu Student; BEGIN SELECT sno,sname,sclass INTO stu FROM student WHERE sno=1001; DBMS_OUTPUT.PUT_LINE('学号 姓名 班级'); DBMS_OUTPUT.PUT_LINE(stu.sid||' '||stu.sname||' '||stu.sclass); END; /
--%TYPE方式 该方式定义的记录属性的数据类型和数据长度均和表中对应的字段一直
DECLARE TYPE T_STU IS RECORD( sid student.sno%TYPE, sname student.sname%TYPE, sclass student.sclass%TYPE ); v_stu T_STU; BEGIN SELECT sno,sname,sclass INTO v_stu FROM student WHERE sno=1001; DBMS_OUTPUT.PUT_LINE('学号 姓名 班级'); DBMS_OUTPUT.PUT_LINE(v_stu.sid||' '||v_stu.sname||' '||v_stu.sclass); END; /
--定义表里所有的字段为记录类型,RWOTYPE,访问其中字段为表的字段名称
DECLARE v_stu student%ROWTYPE; BEGIN SELECT sno,sname,sclass INTO v_stu FROM student WHERE sno=1001; DBMS_OUTPUT.PUT_LINE('学号 姓名 班级'); DBMS_OUTPUT.PUT_LINE(v_stu.sno||' '||v_stu.sname||' '||v_stu.sclass); END; /