pl sql 概述与流程控制语句

上传人:第*** 文档编号:37808051 上传时间:2018-04-22 格式:DOC 页数:23 大小:217KB
返回 下载 相关 举报
pl sql 概述与流程控制语句_第1页
第1页 / 共23页
pl sql 概述与流程控制语句_第2页
第2页 / 共23页
pl sql 概述与流程控制语句_第3页
第3页 / 共23页
pl sql 概述与流程控制语句_第4页
第4页 / 共23页
pl sql 概述与流程控制语句_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《pl sql 概述与流程控制语句》由会员分享,可在线阅读,更多相关《pl sql 概述与流程控制语句(23页珍藏版)》请在金锄头文库上搜索。

1、PL/SQLPL/SQL 概述与流程控制语句概述与流程控制语句oracle pl/sql 基本构成结构控制语句: 分支分支 选择选择 looploop 循环循环 分支结构:分支结构:分支结构是最基本的程序结构,分支结构由 IFIF 语句实现。使用 IF 语句,根据 条件可以改变程序的逻辑流程。IFIF 语句有如下的形式语句有如下的形式: : IF 条件 1 THEN 语句序列 1; ELSIF 条件 2 THEN 语句序列 2; ELSE 语句序列 n; END IF; 其中: 条件部分是一个逻辑表达式,值只能是真(TRUE)、假(FALSE)或空(NULL)。 语句序列为多条可执行的语句。

2、根据具体情况,分支结构可以有以下几种形式:分支结构可以有以下几种形式: IF-THEN-ENDIF-THEN-END IFIF IF-THEN-ELSE-ENDIF-THEN-ELSE-END IFIF IF-THEN-ELSIF-ELSE-ENDIF-THEN-ELSIF-ELSE-END IFIF 1 1IF-THEN-ENDIF-THEN-END IFIF 形式形式 这是最简单的 IF 结构,练习如下: 【训练 1】 如果温度大于 30,则显示“温度偏高”。 输入并执行以下程序: Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. V_tempratu

3、re NUMBER(5):=32; 4. V_result BOOLEAN:=false; 5. BEGIN 6. V_result:= v_temprature 30; 7. IF V_result THEN 8. DBMS_OUTPUT.PUT_LINE(温度| V_temprature |度,偏 高 9. ); 10. END IF; 11. END; 执行结果为: Sql 代码:1. 温度 32 度,偏高 2. PL/SQL 过程已成功完成。 说明:说明:该程序中使用了布尔变量,初值为 false,表示温度低于 30。表达式 v_temprature 30 返回值为布尔型,赋给逻辑变量

4、 V_result。如果变量 v_temprature 的值大于 30,则返回值为真,否则为假。V_result 值为真就会 执行 IF 到 END IF 之间的输出语句,否则没有输出结果。 试修改温度的初值为 25,重新执行,观察结果。 2 2IF-THEN-ELSE-ENDIF-THEN-ELSE-END IFIF 形式形式 这种形式的练习如下: 【训练 2】 根据性别,显示尊称。 输入并执行以下程序: Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. v_sex VARCHAR2(2); 4. v_titil VARCHAR2(10); 5. BEG

5、IN 6. v_sex:=男; 7. IF v_sex =男 THEN 8. v_titil:=先生; 9. ELSE 10. v_titil:=女士; 11. END IF; 12. DBMS_OUTPUT.PUT_LINE(v_titil|您好!); 13.END; 执行结果为: Sql 代码:1. 先生您好! 2. PL/SQL 过程已成功完成。 说明说明:该程序根据性别显示尊称和问候,无论性别的值为何,总会有显示结果 输出。如果 V_sex 的值不是男和女,那么输出结果会是什么? 【练习 1】对以上程序进行补充修改,在 ELSE 部分嵌入一个 IF 结构,如果 V_sex 的值不是女,

6、则显示“朋友你好”。 3 3IF-THEN-ELSIF-ELSE-ENDIF-THEN-ELSIF-ELSE-END IFIF 形式形式 这种形式的练习如下: 【训练 3】 根据雇员工资分级显示税金。 输入并运行以下程序: Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. v_sal NUMBER(5); 4. v_tax NUMBER(5,2); 5. BEGIN 6. SELECT sal INTO v_sal 7. FROM emp 8. WHERE empno=7788; 9. IF v_sal =3000 THEN 10. V_tax:= v_s

7、al*0.08; -税率 8% 11.ELSIF v_sal=1500 THEN 12. V_tax:= v_sal*0.06; -税率 6% 13.ELSE 14. V_tax:= v_sal*0.04; -税率 4% 15.END IF; 16.DBMS_OUTPUT.PUT_LINE(应缴税金:|V_tax); 17.END; 执行结果为: Sql 代码:1. 应缴税金:240 2. PL/SQL 过程已成功完成。 说明:说明:该程序根据工资计算 7788 号雇员应缴税金,不同工资级别的税率不同。 选择结构选择结构:CASE 语句适用于分情况的多分支处理,可有以下三种用法。 1 1基本基

8、本 CASECASE 结构结构 语句的语法如下: CASE 选择变量名 WHEN 表达式 1 THEN 语句序列 1 WHEN 表达式 2 THEN 语句序列 2 WHEN 表达式 n THEN 语句序列 n ELSE 语句序列 n+1 END CASE; 在整个结构中,选择变量的值同表达式的值进行顺序匹配,如果相等,则执行 相应的语句序列,如果不等,则执行 ELSE 部分的语句序列。 以下是一个使用 CASE 选择结构的练习。 【训练 1】 使用 CASE 结构实现职务转换。 输入并执行程序: Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. v_job

9、 VARCHAR2(10); 4. BEGIN 5. SELECT job INTO v_job 6. FROM emp 7. WHERE empno=7788; 8. CASE v_job 9. WHEN PRESIDENT THEN 10. DBMS_OUTPUT.PUT_LINE(雇员职务:总裁); 11.WHEN MANAGER THEN 12. DBMS_OUTPUT.PUT_LINE(雇员职务:经理); 13.WHEN SALESMAN THEN 14. DBMS_OUTPUT.PUT_LINE(雇员职务:推销员); 15.WHEN ANALYST THEN 16. DBMS_OU

10、TPUT.PUT_LINE(雇员职务:系统分析员); 17.WHEN CLERK THEN 18. DBMS_OUTPUT.PUT_LINE(雇员职务:职员); 19.ELSE 20. DBMS_OUTPUT.PUT_LINE(雇员职务:未知); 21.END CASE; 22.END; 执行结果: Sql 代码:1. 雇员职务:系统分析员 2. PL/SQL 过程已成功完成。 说明:以上实例检索雇员 7788 的职务,通过 CASE 结构转换成中文输出。 【练习 1】将雇员号修改成其他已知雇员号,重新执行。 2 2表达式结构表达式结构 CASECASE 语句语句 在 Oracle 中,CAS

11、E 结构还能以赋值表达式赋值表达式的形式出现,它根据选择变量的值求得不同的结果。 它的基本结构如下它的基本结构如下: 变量:=CASE 选择变量名 WHEN 表达式 1 THEN 值 1 WHEN 表达式 2 THEN 值 2 WHEN 表达式 n THEN 值 n ELSE 值 n+1 END; 【训练 2】 使用 CASE 的表达式结构。 Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. v_grade VARCHAR2(10); 4. v_result VARCHAR2(10); 5. BEGIN 6. v_grade:=B; 7. v_result

12、:=CASE v_grade 8. WHEN A THEN 优 # #注意没有注意没有; 9. WHEN B THEN 良 10. WHEN C THEN 中 11. WHEN D THEN 差 12. ELSE 未知 13. END; 14. DBMS_OUTPUT.PUT_LINE(评价等级:|V_result); 15. END; 执行结果为: Sql 代码:1. 评价等级:良 2. PL/SQL 过程已成功完成。 说明:说明:该 CASE 表达式通过判断变量 v_grade 的值,对变量 V_result 赋予不同 的值。 3 3搜索搜索 CASECASE 结构结构 Oracle 还提

13、供了一种搜索 CASE 结构,它没有选择变量,直接判断条件表达式 的值,根据条件表达式决定转向。 CASE WHEN 条件表达式 1 THEN 语句序列 1 WHEN 条件表达式 2 THEN 语句序列 2 WHEN 条件表达式 n THEN 语句序列 n ELSE 语句序列 n+1 END CASE; 【训练 3】 使用 CASE 的搜索结构。 Sql 代码:1. SET SERVEROUTPUT ON 2. DECLARE 3. v_sal NUMBER(5); 4. BEGIN 5. SELECT sal INTO v_sal FROM emp 6. WHERE empno=7788; 7. CASE 8. WHEN v_sal=3000 THEN 9. DBMS_OUTPUT.PUT_LINE(工资等级:高); 10. WHEN v_sal=1500 THEN 11. DBMS_OUTPUT.PUT_LINE(工资等级:中); 12. ELSE 13. DBMS_OUTPUT.PUT_LINE(工资等级:低); 14. END CASE; 15.END; 执行结果为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号