三、PL/SQL流程控制语句
介绍PL/SQL的流程控制语句,包括如下三类:
控制语句:IF语句
循环语句:LOOP语句,EXIT语句
顺序语句:GOTO语句,NULL语句
例1:
declare
v_empno emp.empno%type;
v_salary emp.sal%type;
v_comment varchar2(35);
begin
select sal into v_salary from emp where empno=v_empno;
if v_salary<1500 then
v_comment:='Fairly less';
elsif v_salary<3000 then
v_comment:='A little more';
else
v_comment:='Lots of salary';
end if;
dbms_output.put_line(v_comment);
end;
例2:
declare
v_grade char(1);
v_appraisal varchar2(20);
begin
v_appraisal:=
case v_grade
when 'a' then 'Excellent'
when 'b' then 'Very Good'
when 'c' then 'Good'
else 'No such grade'
end;
dbms_output.put_line('Grade:'||v_grade||' Appraisal:'||v_appraisal);
end;
例3:
declare
int number(2):=0;
begin
loop
int:=int+1;
dbms_output.put_line('int的当前值为:'||int);
exit when int=10;
end loop;
end;
例4:
declare
x number:=1;
begin
while x<=10 loop
dbms_output.put_line('x的当前值为:'||x);
x:=x+1;
end loop;
end;
例5:
begin
for int in[reverse] 1..10 loop
dbms_output.put_line('int的当前值为:'||int);
end loop;
end;
例6:
declare
v_counter number:=1;
begin
loop
dbms_output.put_line('v_counter的当前值为:'||v_counter);
v_counter:=v_counter+1;
if v_counter>10 then
goto l_endofloop;
end if;
end loop;
<<l_endofloop>>
dbms_output.put_line('v_counter的当前值为:'||v_counter);
end;
在PL/SQL程序中,可以用null语句来说明“不用做任何事情”的意思,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。
介绍PL/SQL的流程控制语句,包括如下三类:
控制语句:IF语句
循环语句:LOOP语句,EXIT语句
顺序语句:GOTO语句,NULL语句
例1:
declare
v_empno emp.empno%type;
v_salary emp.sal%type;
v_comment varchar2(35);
begin
select sal into v_salary from emp where empno=v_empno;
if v_salary<1500 then
v_comment:='Fairly less';
elsif v_salary<3000 then
v_comment:='A little more';
else
v_comment:='Lots of salary';
end if;
dbms_output.put_line(v_comment);
end;
例2:
declare
v_grade char(1);
v_appraisal varchar2(20);
begin
v_appraisal:=
case v_grade
when 'a' then 'Excellent'
when 'b' then 'Very Good'
when 'c' then 'Good'
else 'No such grade'
end;
dbms_output.put_line('Grade:'||v_grade||' Appraisal:'||v_appraisal);
end;
例3:
declare
int number(2):=0;
begin
loop
int:=int+1;
dbms_output.put_line('int的当前值为:'||int);
exit when int=10;
end loop;
end;
例4:
declare
x number:=1;
begin
while x<=10 loop
dbms_output.put_line('x的当前值为:'||x);
x:=x+1;
end loop;
end;
例5:
begin
for int in[reverse] 1..10 loop
dbms_output.put_line('int的当前值为:'||int);
end loop;
end;
例6:
declare
v_counter number:=1;
begin
loop
dbms_output.put_line('v_counter的当前值为:'||v_counter);
v_counter:=v_counter+1;
if v_counter>10 then
goto l_endofloop;
end if;
end loop;
<<l_endofloop>>
dbms_output.put_line('v_counter的当前值为:'||v_counter);
end;
在PL/SQL程序中,可以用null语句来说明“不用做任何事情”的意思,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。