<强>,甲骨文中的游标和函数详解强>
<强> 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; 结束;甲骨文中的游标和函数详解