甲骨文中的游标和函数详解

  

<强>,甲骨文中的游标和函数详解

  

<强> 1。游标
  

  

游标是一种PL/SQL控制结构;可以对SQL语句的处理进行显示控制,便于对表的行数据
  

  

逐条进行处理。游标并不是一个数据库对象,只是存留在内存中。
  

  

<强>操作步骤:
  

  

,,声明游标
  ,,打开游标
  

  

,,取出结果,此时的结果取出的是一行数据
  

  

,,关闭游标到底那种类型可以把一行的数据都装进来
  

  

,,此时使用ROWTYPE类型,此类型表示可以把一行的数据都装进来。例如:查询雇员编号为7369的信息(肯定是一行信息)。
  

  

例:查询雇员编号为7369的信息(肯定是一行信息)。
  

        声明   eno emp.empno %类型;   empInfo emp % ROWTYPE;   开始   eno:=, en;   SELECT *到empInfo从emp empno=eno;   DBMS_OUTPUT.put_line(“雇员编号:“| | empInfo.empno);   DBMS_OUTPUT.put_line(“雇员姓名:“| | empInfo.ename);   结束;   之前      

使用的循环操作游标(比较常用)
  

        声明   ——声明游标   光标mycur SELECT *从emp empno=1;   empInfo emp % ROWTYPE;   虽数量;   开始   ——游标操作使用循环,但是在操作之前必须先将游标打开   在mycur empInfo   循环   ——ROWCOUNT对游标所操作的行数进行记录   的计谋:=mycur % ROWCOUNT;   DBMS_OUTPUT.put_line(咨询| |的雇员编号:“| | empInfo.empno);   DBMS_OUTPUT.put_line(咨询| |的雇员姓名:“| | empInfo.ename);   结束循环;   结束;   之前      

我们可以看到游标为循环确实很好的简化了游标的开发,我们不在需要开放、获取和亲密语句,不在需要用%发现属性检测是否到最后一条记录,这一切甲骨文隐式的帮我们完成了只

  

编写第一个游标,输出全部的信息。
  

        声明   ——声明游标   光标mycur SELECT * FROM电磁脉冲;——相当于一个列表(EmpPo)   empInfo emp % ROWTYPE;   开始   ——游标操作使用循环,但是在操作之前必须先将游标打开   开放mycur;   ——使游标向下一行   获取mycur empInfo;   ——判断此行是否有数据被发现   而(mycur %发现)   循环   DBMS_OUTPUT.put_line(“雇员编号:“| | empInfo.empno);   DBMS_OUTPUT.put_line(“雇员姓名:“| | empInfo.ename);   ——修改游标,继续向下   获取mycur empInfo;   结束循环;   结束;   之前      

也可以使用另外一种方式循环游标:循环…结束循环;
  

        声明   ——声明游标   光标mycur SELECT * FROM电磁脉冲;   empInfo emp % ROWTYPE;   开始   ——游标操作使用循环,但是在操作之前必须先将游标打开   开放mycur;   循环   ——使游标向下一行   获取mycur empInfo;   mycur % NOTFOUND时退出;   DBMS_OUTPUT.put_line(“雇员编号:“| | empInfo.empno);   DBMS_OUTPUT.put_line(“雇员姓名:“| | empInfo.ename);   结束循环;   结束;   之前      


  

  

通过ISOPEN判断
  

  

格式:
  

        游标% ISOPEN如果mycur % ISOPEN   零;   其他的   开放mycur;   如果;之前      


  

        声明   ——声明游标   光标mycur SELECT * FROM电磁脉冲;   empInfo emp % ROWTYPE;   虽数量;开始   ——游标操作使用循环,但是在操作之前必须先将游标打开   如果mycur % ISOPEN   零;   其他的   开放mycur;   如果;   循环   ——使游标向下一行   获取mycur empInfo;   mycur % NOTFOUND时退出;   的计谋:=mycur % ROWCOUNT;   DBMS_OUTPUT.put_line(咨询| |的雇员编号:“| | empInfo.empno);   DBMS_OUTPUT.put_line(咨询| |的雇员姓名:“| | empInfo.ename);   结束循环;   结束;   之前      

<强> 2。函数
  

  

函数就是一个有返回值的过程。
  

  

定义一个函数:此函数可以根据雇员的编号查询出雇员的年薪
  

        创建或替换函数myfun (eno emp.empno %类型)   返回数字rsal数量;   开始   选择(sal + nvl(通讯,0))* 12到rsal从emp empno=eno;   返回rsal;   结束;   

甲骨文中的游标和函数详解