游标
declare
cursor cur_emp
is select * from emp
where deptno
=30;
c cur_emp
%rowtype
;
sumsal emp
.sal
%type:
=0;
begin
for c
in cur_emp
loop
sumsal:
=sumsal
+c
.sal
;
end loop;
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;
转载请注明原文地址: https://mac.8miu.com/read-492827.html