一、条件语句
SQL> declare
2 v_eno empl.eno%type:=&empno;
3 v_sal empl.sal%type;
4 v_comment varchar2(25);
5 begin
6 select sal into v_sal from empl where eno=v_eno;
7 if v_sal<1500 then
8 v_comment:='Fairly less';
9 elsif v_sal<3000 then
10 v_comment:='A little more';
11 else
12 v_comment:='Lots of salary';
13 end if;
14 dbms_output.put_line(v_comment);
15 end;
16 /
输入 empno 的值: 1001
原值 2: v_eno empl.eno%type:=&empno;
新值 2: v_eno empl.eno%type:=1001;
Lots of salary
二、case表达式
SQL> declare
2 v_grade char(1):=upper('&p_grade');
3 v_appraisal varchar2(20);
4 begin
5 v_appraisal:=
6 case v_grade
7 when 'A' then 'excellent'
8 when 'B' then 'very good'
9 when 'C' then 'good'
10 else 'no such grade'
11 end;
12 dbms_output.put_line('grade:'||v_grade||',appraisal:'||v_appraisal);
13 end;
14 /
输入 p_grade 的值: a
原值 2: v_grade char(1):=upper('&p_grade');
新值 2: v_grade char(1):=upper('a');
grade:A,appraisal:excellent
三、循环
1、loop循环
SQL> declare
2 int number(2):=0;
3 begin
4 loop
5 int:=int+1;
6 dbms_output.put_line('int的当前值为:'||int);
7 exit when int=10;
8 end loop;
9 end;
10 /
int的当前值为:1
int的当前值为:2
int的当前值为:3
int的当前值为:4
int的当前值为:5
int的当前值为:6
int的当前值为:7
int的当前值为:8
int的当前值为:9
int的当前值为:10
2、while循环
SQL> declare
2 int number;
3 begin
4 int:=1;
5 while int<=10 loop
6 dbms_output.put_line('int的当前值为:'||int);
7 int:=int+1;
8 end loop;
9 end;
10 /
int的当前值为:1
int的当前值为:2
int的当前值为:3
int的当前值为:4
int的当前值为:5
int的当前值为:6
int的当前值为:7
int的当前值为:8
int的当前值为:9
int的当前值为:10
3、数字式循环
SQL> declare
2 int number;
3 begin
4 for int in 1..10 loop
5 dbms_output.put_line('int的当前值为:'||int);
6 end loop;
7 end;
8 /
int的当前值为:1
int的当前值为:2
int的当前值为:3
int的当前值为:4
int的当前值为:5
int的当前值为:6
int的当前值为:7
int的当前值为:8
int的当前值为:9
int的当前值为:10
四、goto
SQL> declare
2 v_counter number:=1;
3 begin
4 loop
5 dbms_output.put_line('v_counter的当前值为:'||v_counter);
6 v_counter:=v_counter+1;
7 if v_counter>10 then
8 goto l_endofloop;
9 end if;
10 end loop;
11 <<l_endofloop>>
12 dbms_output.put_line('v_counter的当前值为:'||v_counter);
13 end;
14 /
v_counter的当前值为:1
v_counter的当前值为:2
v_counter的当前值为:3
v_counter的当前值为:4
v_counter的当前值为:5
v_counter的当前值为:6
v_counter的当前值为:7
v_counter的当前值为:8
v_counter的当前值为:9
v_counter的当前值为:10
v_counter的当前值为:11