本部分主要讲解PL/SQL条件控制语句的一下几个:
语句 | 描述 |
IF语句关联的条件通过THEN和END IF关键字封闭的语句序列。如果条件为真,则语句被执行,如果条件为假或NULL,则IF语句什么都不做 | |
IF语句添加关键字ELSE后面的语句的替代序列。如果条件为假或NULL,语句则只有替换序列得到执行。它确保任一陈述的序列的被执行 | |
它可以在几个方案之间进行选择 | |
| |
可以使用一个IF-THEN或IF-THEN-ELSIF语句中的另一个IF-THEN或IF-THEN-ELSIF声明 |
PL/SQL的源码操作实例:
-- Created on 2018/3/23 by E.WANG
declare
--学生总分
score integer;
begin
/*
score<60:为E 表示没及格
70>score>=60:为D 表示及格
80>score>=70:为C 表示中等
90>score>=80:为B,表示良好
100>score>=90:为A,表示优秀
score=100:为A+,表示优异
*/
/*
IF语句关联的条件通过THEN和END IF关键字封闭的语句序列。
如果条件为真,则语句被执行,如果条件为假或NULL,则IF语句什么都不做
*/
score:=-10;
if score<0 then
dbms_output.put_line('Score is error!Please alter Score!');
end if;
/*
IF语句添加关键字ELSE后面的语句的替代序列。
如果条件为假或NULL,语句则只有替换序列得到执行。
它确保任一陈述的序列的被执行
*/
score:=101;
if score between 0 and 100 then
dbms_output.put_line('Score is right range!');
else
dbms_output.put_line('Please input again !');
end if;
/*
它可以在几个方案之间进行选择
*/
score:=78;
if score<60 and score>=0 then
dbms_output.put_line('The student mark is: E');
elsif score>=60 and score<70 then
dbms_output.put_line('The student mark is: D');
elsif score>=70 and score<80 then
dbms_output.put_line('The student mark is: C');
elsif score>=80 and score<90 then
dbms_output.put_line('The student mark is: C');
elsif score>=90 and score<100 then
dbms_output.put_line('The student mark is: A');
elsif score=100 then
dbms_output.put_line('The student mark is: A+');
else
dbms_output.put_line('Please input again !');
end if;
/*
可以使用一个IF-THEN
或IF-THEN-ELSIF语句中的
另一个IF-THEN或IF-THEN-ELSIF声明
*/
score:=100;
if score between 80 and 100 then
if score=90 then
dbms_output.put_line('The student mark is: A');
else
if score<90 and score>=80 then
dbms_output.put_line('The student mark is: C');
elsif score>=90 and score<100 then
dbms_output.put_line('The student mark is: A');
elsif score=100 then
dbms_output.put_line('The student mark is: A+');
end if;
end if;
else
dbms_output.put_line('Please input again !');
end if;
end;
给出部分窗口截屏:
运行结果截图: