一、复习
1、 PL/SQL
Declare
变量定义 变量定义:变量名 类型:=值;
begin
程序 例:set serverout on;
dbms_output.put_line(‘ ’);
exception
end;
(a) 条件结构
① if __ then ② if __ then ③case__
end if; elsif when__ then
end if; else__
end;
(b) 循环控制
④ while__ loop ⑤ for__ loop
…. ……
End loop; end loop;
二、while 和for的用法
① declare
v_num int:=1;
v_sum int:=0;
begin
while v_num<=10 loop
v_sum:=v_sum+v_num;
v_num:=v_num+1;
end loop;
end;
/ |
② declare
v_num int:=1;
v_sum int:=0;
begin
for v_num in 1..10 loop
v_sum:=v_sum+v_num ;
end loop;
end;
/ |
三、游标
1、
定义游标(cursor)
cursor |
游标指向结果集
2、 打开游标 (open)
3、 使用游标 ①fetch : 游标向后移一行
② %found :判断游标所指这一行有数据
%not found : 判断游标所指这一行没有数据
4、 关闭游标 (close)
例:打印emp中所有记录
(1)使用while循环
declare
cursor cur_emp is select * from emp; (定义游标)①
v_emp emp%rowtype;
if cur_emp%isopen then (打开游标)②
else
open cur_emp;
end if;
fetch cur_emp into v_emp; (游标往下移一行) (使用游标)③
while cur_emp%found loop (判断游标所指这一行若有数据则进入while环)
dbms_output.put_line(v_emp.ename); (打印)
fetch cur_emp into v_emp; (游标往下移一行)
end loop;
close cur_emp;
end if;
end;
/
(2) 使用for循环 for循环中使用游标时自带开、关和向下移一行,无需重新写开、关和fetch语句
declare
cursor cur_emp is select * from emp;
(v_emp emp%rowtype;) ( 临时变量可以不用定义)
begin
for v_emp in cur_emp loop
dbms_output.put_line(v_emp.ename);
end loop;
end;
/