PL/SQL基于数据表与游标的记录操作实例讲解

        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;

给出源码窗口截图:


  运行结果截图:


猜你喜欢

转载自blog.csdn.net/henni_719/article/details/79752461