逻辑比较:
控制语句:
条件
1. IF .. THEN ..ELSE 语句:
1) IF .. THEN
…;
END IF;
2) IF ... THEN
…;
ELSE
…
END IF;
3) IF ... THEN
…;
ELSIF … THEN
…;
ELSE
…;
END IF;
2. CASE 语句
CASE 变量
WHEN 值1 THEN
…;
WHEN 值2 THEN
…;
ELSE …;
END CASE;
~~~~~~~~~~~~~~~~~~~~~~~~~~~
CASE
WHEN 条件1 THEN
…;
ELSE
…;
END CASE;
循环:
1. 无条件循环:
declare
l_loops number:=0;
begin
loop
if l_loops >4 then
exit;
end if;
dbms_output.put_line(‘Looped ‘ || l_loops || ‘times’);
l_loops := l_loops + 1;
end loop;
end;
/
declare
l_loops number:=0;
begin
loop
exit when l_loops > 4;
dbms_output.pub_line(‘Looped ‘ || l_loops || ‘times’);
l_loops : = l_loops: + 1;
end loop;
end;
/
2. FOR循环
Declare
Begin
For I in 1.. 4 loop
Dbms_output.put_line(I);
End loop;
End;
/
降序:for I in reverse 4.. 1 loop
3. WHILE 循环
declare
l_loops number:=0;
begin
while l_loops < 5 loop
dbms_output.put_line(‘Looped ‘ || l_loops || ‘times’);
l_loops := l_loops + 1;
end loop;
end;
goto 语句
异常和游标管理
游标:
用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作。
分类:
静态游标:
分为显示游标和隐示游标。
REF游标:
是一种引用类型,类似于指针。
显示游标:
CURSOR 游标名 ( 参数 ) [返回值类型] IS
Select 语句
生命周期:
1. 打开游标(OPEN): 解析,绑定。。。
2. 从游标中获取记录(FETCH INTO):执行查询,返回结果集
3. 关闭游标(CLOSE)
隐示游标:
不用明确建立游标变量,分两种:
1. 在PL/SQL中使用DML语言,使用ORACLE提供的名为SQL的隐示游标
2. CURSOR FOR LOOP
1举例:
declare
begin
update departments set department_name=department_name
where 1=2;
dbms_output.pub_line(‘update ‘|| sql%rowcount ||’ records’);
end;
/
2举例:
declare
begin
for my_cursor in ( select department_name, department_id from departments)
loop
dbms_output.pub_line(my_cursor.department_id || ‘ : ’ my_cursor.department_name);
end;
/
游标属性:
%FOUND
%NOTFOUND
%ROWCOUNT
%ISOPEN
REF游标