3.Oracle数据库游标的使用

mac2024-05-29  36

游标

--游标使用方式: for的方式 declare --声明游标 cur_emp cursor cur_emp is select * from emp where deptno=30; --声明 cur_emp游标类型的一个变量 c c cur_emp%rowtype; sumsal emp.sal%type:=0; begin --for去遍历提取游标中的数据 for c in cur_emp loop sumsal:=sumsal+c.sal; end loop; --输出总薪资 sumsal dbms_output.put_line('30部门的总薪资是:'||sumsal); end;

例子:(存储过程中使用游标)

--传入指定部门,给部门下的员工加薪 create or replace procedure pr_addsal(dno emp.deptno%type) is begin declare cursor youbiao is select * from emp where deptno=dno; a youbiao%rowtype; begin for a in youbiao loop if a.sal<=900 then update emp set sal=sal+1000 where empno=a.empno; end if; if a.sal>1500 then update emp set sal=sal+600 where empno=a.empno; end if; if a.sal>900 and a.sal<=1500 then update emp set sal=sal+800 where empno=a.empno; end if; end loop; end; end;

调用存储过程:

begin pr_addsal(30); end;

查询结果:

select * from emp where deptno=30;

最新回复(0)