PL_SQL的分支和循环:
declare
v_sal emp.sal%type;
begin
select sal into v_sal from emp
where empno = 7369;
if(sal < 1200) then
dbms_output.put_line('low');
elsif(v_sal<2000) then --注意elsif拼写,少一个e.
dbms_output.put_line('middle');
else ---注意else后面不跟then
dbms_output.put_line('high');
end if; ---endif后面要有分号(;)
end;
循环:
---相当于do-while循环
declare
i binary_integer := 1;
begin
loop ---循环开始
dbms_output.put_line(i);
i := i + 1;
exit when(i >=11); ---跳出循环的条件
end loop; --循环结束
end;
--相当于while循环
declare
j binary_integer := 1;
begin
while j < 11 loop
dbms_output.put_line(j);
j := j+1;
end loop;
end;
---相当于for循环
begin
for k in 1..10 loop
dbms_output.put_line(k);
end loop;
for k in reverse 1..10 loop ---reverse逆序循环 从10到1.
dbms_output.put_line(k);
end loop;
end;
错误处理:
declare
v_temp number(4);
begin
select empno into v_temp from emp where deptno = 10;
exception
when too_many_rows then
dbms_output.put_line('太多记录了');
when no_data_found then
dbms_output.put_line('没数据');
when others then
dbms_output.put_line('error');
end;