PL/SQL记录就是可以容纳不同类型的数据项的数据结构。记录由不同字段,类似于数据库表的行。PL/SQL可以处理记录的以下几种类型:基于数据表、基于游标的记录、用户自定义记录。使用%ROWTYPE属性创建基于表格和基于游标记录。
emp数据表的结构如下:
以下给出基于数据表emp创建基于表格和基于游标记录的源码:
-- Created on 2018/3/30 by E.WANG /* PL/SQL记录就是可以容纳不同类型的数据项的数据结构。 PL/SQL可以处理记录的以下几种类型:基于数据表、基于游标的记录、用户自定义记录。 */ declare --基于表的记录声明 --使用%rowtype属性创建基于表和游标的记录 --声明基于数据表emp的记录empTable_rec empTable_rec emp%rowtype; --创建游标empTable_cursor cursor empTable_cursor is select empno, ename, job from emp; --声明基于游标empTable_cursor的记录empTable_cursor_rec empTable_cursor_rec empTable_cursor%rowtype; begin dbms_output.put_line('------------------------------The record bases on dataTable---------------------------'); --给empTable_rec记录赋值 select * into empTable_rec from emp where empno=7499; --输出记录每个属性的值 dbms_output.put_line('employee No:' ||empTable_rec.empno || 'employee Name: '|| empTable_rec.ename || 'employee Position: ' || empTable_rec.job); dbms_output.put_line('employee Manger NO: ' || empTable_rec.mgr || 'employee Hiredate: '|| empTable_rec.hiredate ||'employee Salary: ' || empTable_rec.sal); dbms_output.put_line('employee CMM: ' || empTable_rec.comm ||'employee DeptNO: ' ||empTable_rec.deptno); dbms_output.put_line('------------------------------The record bases on cursor---------------------------'); --打开游标 open empTable_cursor; --输出游标中存储的全部数据 LOOP --获取游标中的每一行数据到记录empTable_cursor_rec中 fetch empTable_cursor into empTable_cursor_rec; --当游标不在发生变化时退出循环 exit when empTable_cursor%notfound; --输出游标每一行的数据(记录的属性值) dbms_output.put_line('employee No: ' || empTable_cursor_rec.empno || ' employee Name: '|| empTable_cursor_rec.ename || ' employee Position: ' || empTable_cursor_rec.job); end loop; --关闭游标来释放分配的内存 close empTable_cursor; end;