ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PL/SQL查出迟到员工-----存储过程

PL/SQL查出迟到员工-----存储过程

原创 Linux操作系统 作者:leegstar 时间:2012-07-10 14:19:19 0 删除 编辑
表一:职员
SQL> select * from zhiyuan;

  PERSONID PERSO     DEPTID
---------- ----- ----------
       101 zhang          1
       102 wang           2
       103 hang           3
       104 fang           4
 
 
表二:考勤
SQL> select * from kaoqin;

       SON   PERSONID CIO  CDATE               CTIME
---------- ---------- ---- -------------- ----------
         1        101 I    10-7月 -12            840
         2        101 O    10-7月 -12           1740
         3        102 I    10-7月 -12            940
         4        102 O    10-7月 -12           1840
         5        103 I    10-7月 -12            740
         6        103 O    10-7月 -12           1340
         7        104 I    10-7月 -12            540
         8        104 O    10-7月 -12           1240

创建存储过程
SQL> create or replace procedure k_p
  2  is
  3  v_name zhiyuan.personname%type;
  4  v_id zhiyuan.personid%type;
---------------------声明变量
  5  cursor c1 is select zhiyuan.personid,zhiyuan.personname from zhiyuan,kaoqin
  6     where kaoqin.personid=zhiyuan.personid and kaoqin.cio='I' AND ctime > 0830;
---------------------创建游标
  7  begin
  8  open c1;---------------开启游标
  9  loop
 10  fetch c1 into v_id,v_name;-----------------赋值
 11  exit when c1%notfound;
 12  dbms_output.put_line(v_id||':'||v_name);
 13  end loop;
 14  close c1;
 15  end;
 16  /

过程已创建。

SQL> exec k_p;
101:zhang
102:wang

PL/SQL 过程已成功完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26585184/viewspace-735071/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-12-28

  • 博文量
    31
  • 访问量
    126170