欢迎来到天天文库
浏览记录
ID:43091882
大小:479.64 KB
页数:27页
时间:2019-09-26
《PLSQL概述与流程控制语句》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PL/SQL概述与流程控制语句oraclepl/sql基木构成结构控制语句:分支选择loop循环分支结构:分支结构是最基本的程序结构,分支结构由IF语句实现。使用IF语句,根据条件可以改变程序的逻辑流程。IF语句有如下的形式:IF条件1THEN语句序列1;[ELSIF条件2THEN语句序列2;ELSE语句序列n;]ENDTF;其屮:条件部分是一个逻辑表达式,值只能是真(TRUE)、假(FALSE)或空(NULL)o语句序列为多条可执行的语句。根据具体情况,分支结构可以有以下几种形式:IF-THEN-ENDIFIF-THEN
2、-ELSE-ENDIFIF-THEN-ELSIF-ELSE-ENDIF1.IF-THEN-ENDIF形式这是最简单的IF结构,练习如下:【训练1】如果温度大于30°C,则显示“温度偏高”。输入并执行以下程序:Sql代码:1.2.3.4.SETSERVEROUTPUTONDECLAREV_tcmpraturcMUMBER(5):=32;V_resultBOOLEAN:=faIse;5.6.7.&9.10.11.BEGINVresult:=vtemprature>30;IFV_rcsultTHENDBMSOUTPUT.PUTL
3、1NEC温度'Vtemprature'度,偏高,);END[比END;执行结果为:Sql代码:1.温度32度,偏高2.PL/SQL过程已成功完成。说明:该程序中使用了布尔变量,初值为false,表示温度低于30°Co表达式v_temprature>30返回值为布尔型,赋给逻辑变量V_resulto如果变量v_tcmpraturc的值大于30,则返回值为真,否则为假。V.rcsult值为真就会执行1F到ENDIF之间的输出语句,否则没有输岀结果。试修改温度的初值为25°C,重新执行,观察结果。1.IF-THEN-ELSE-E
4、NDIF形式这种形式的练习如下:【训练2】根据性别,显示尊称。输入并执行以下程序:Sql代码:1.SETSERVEROUTPUTON2.DECLARE3.v_sexVARCHAR2(2);4.v_tit订VARCHAR2(10);5.BEGIN6.v_scx:二'男’;7.IFv_sex二'男'THEN8.vtitil:=,先生';9.ELSE10.vtitil:二'女士';11.ENDIF;12.DBMS_OUTPUT.PUT_L1NE(v_titi11
5、J您好!');13.EXD;执行结果为:Sql代码:1.先生您好!
6、2.PL/SQL过程已成功完成。说明:该程序根据性别显示尊称和问候,无论性别的值为何,总会有显示结果输出。如果V_sex的值不是'男'和'女',那么输出结果会是什么?【练习1】知以上程序进行补充修改,在ELSE部分嵌入一个1F结构,如果V_sex的值不是'女’,则显示“朋友你好”。3.IF-THEN-ELSIF-ELSE-ENDIF形式这种形式的练习如下:【训练3]根据雇员工资分级显示税金。输入并运行以下程序:Sql代码:1.SETSERVEROUTPUTON2.DECLARE3.vsalNUMBER(5);4.V_t3X
7、NUMBER(5,2);5.BEGIN6.SELECTsalINTOv_sal7.FROMemp&WHEREcmpno=7788;9.IFvsal>=3000THEN10.V_tax:二v_sal*0.08;--税率8%11.ELSTFv_sal>=1500THEN12.V_tax:二v_sal*0.06;—税率6%13.ELSE14.V_tax:二vsal^O.04;--税率4%15.ENDIF;16.DBMS_OUTPUT.PUT_LTNE(,应缴税金:'
8、
9、V_lax);17.END;执行结果为:Sql代码:1.应缴
10、税金:2402.PL/SQL过程已成功完成。说明:该程序根据工资计算7788号雇员应缴税金,不同工资级别的税率不同。选择结构:CASE语句适用于分情况的多分支处理,可有以下三种用法。1.基本CASE结构语句的语法如下:CASE选择变量名WHEN表达式1THEN语句序列1WHEN表达式2THEN语句序列2WHEN表达式nTHEN语句序列nELSE语句序列n+1ENDCASE;在整个结构中,选择变量的值同表达式的值进行顺序匹配,如果相等,则执行相应的语句序列,如果不等,则执行ELSE部分的语句序列。以下是一个使用CASE选择结
11、构的练习。【训练1]使用CASE结构实现职务转换。输入并执行程序:Sql代码:1.SETSERVEROUTPUTON2.DECLARE3.v_jobVARCHAR2(10);4.BEGIN5.SELECTjobINTOv_job6.FROMemp7.WHEREempno=7788;8.CASEv_job
此文档下载收益归作者所有