编写控制结构:顺序结构,条件结构,循环结构
一。条件语句:
1。与delphi或者java,或者其他任何语言的条件语句基本一样咯:
单条件:
IF condition THEN
......
END IF;
双条件:
IF condition THEN
......
ELSE
...
END IF;
多条件:
IF condition THEN
...
ELSEIF conditon THEN
....
ELSEIF conditon THEN
....
ELSE
....
END IF;
举例:
DECLARE
v_sal
NUMBER
(
6
,
2
);
v_id
NUMBER
;
BEGIN
v_id:
=
'
&id
'
;
SELECT
salary
into
v_sal
FROM
employee
WHERE
id
=
v_id;
IF
v_sal
<
4000
THEN
update
employee
set
salary
=
(v_sal
+
100
)
where
id
=
v_id;
ELSE
update
employee
set
salary
=
(v_sal
-
900
)
where
id
=
v_id;
END
IF
;
END
;
二。CASE语句:
各种语言的switch ...case语句相同,只不过没有switch关键字。
1。使用单一选择符进行比较:
CASE
selector
WHEN
expression1
THEN
;
WHEN
expression
2
THEN
;
END CASE;
2。多种条件比较:
CASE
WHEN
condition1
THEN
;
WHEN
condition2
THEN
;
WHEN
condition3
THEN
;
END CASE;
(三)循环语句:
3种循环:
1。基本循环,至少执行一次:
LOOP
statement1;
...
EXIT WHEN 退出循环条件;
END LOOP1;
例如:
LOOP
insert
into
employee(id,name)
values
(i,
'
dennis
'
);
i:
=
i
+
1
;
EXIT
WHEN
i
>
10
;
END
LOOP;
2。while循环:
WHILE conditon1 LOOP
statement1;
...
END LOOP;
比如上面的例子改写为:
WHILE
i
<=
10
LOOP
insert
into
employee(id,name)
values
(i,
'
dennis
'
);
i:
=
i
+
1
;
END
LOOP;
3。FOR循环,类似于ruby的FOR循环:
FOR counter IN [REVERSE] 下限..上限 LOOP
statement1;
...
END LOOP;
REVERSE参数可选,有的话表示从上限往下限递减。
(四)顺序控制语句
PL/SQL也提供了GOTO和NULL语句用于控制语句执行顺序,GOTO语句与JAVA的机制相似,通过label来实现跳转,尽量不要使用。NULL语句不会执行任何操作,它的存在主要是为了提高程序的可读性。