预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

-- ORACLEPL/SQL编程详解之三 作者:来源:2011-05-3023:14:01HYPERLINK"http://www.sjzit.net/db/oracle/2011-05-30/218.html"\l"pl"我要评论(4) 核心提示:本篇主要内容如下:3.1条件语句3.2CASE表达式3.3循环3.4标号和GOTO3.5NULL语句 介绍PL/SQL的流程控制语句,包括如下三类: 控制语句:IF语句 循环语句:LOOP语句,EXIT语句 顺序语句:GOTO语句,NULL语句 3.1条件语句 IF<布尔表达式>THENPL/SQL和SQL语句ENDIF;-----------------------IF<布尔表达式>THENPL/SQL和SQL语句ELSE其它语句ENDIF;-----------------------IF<布尔表达式>THENPL/SQL和SQL语句ELSIF<其它布尔表达式>THEN其它语句ELSIF<其它布尔表达式>THEN其它语句ELSE其它语句ENDIF; 提示:ELSIF不能写成ELSEIF 例1: DECLAREv_empnoemployees.employee_id%TYPE:=&empno;V_salaryemployees.salary%TYPE;V_commentVARCHAR2(35);BEGINSELECTsalaryINTOv_salaryFROMemployeesWHEREemployee_id=v_empno;IFv_salary<1500THENV_comment:='太少了,加点吧~!';ELSIFv_salary<3000THENV_comment:='多了点,少点吧~!';ELSEV_comment:='没有薪水~!';ENDIF;DBMS_OUTPUT.PUT_LINE(V_comment);exceptionwhenno_data_foundthenDBMS_OUTPUT.PUT_LINE('没有数据~!');whenothersthenDBMS_OUTPUT.PUT_LINE(sqlcode||'---'||sqlerrm);END; 例2: DECLAREv_first_nameVARCHAR2(20);v_salaryNUMBER(7,2);BEGINSELECTfirst_name,salaryINTOv_first_name,v_salaryFROMemployeesWHEREemployee_id=&emp_id;DBMS_OUTPUT.PUT_LINE(v_first_name||'雇员的工资是'||v_salary);IFv_salary<10000THENDBMS_OUTPUT.PUT_LINE('工资低于10000');ELSEIF10000<=v_salaryANDv_salary<20000THENDBMS_OUTPUT.PUT_LINE('工资在10000到20000之间');ELSEDBMS_OUTPUT.PUT_LINE('工资高于20000');ENDIF;ENDIF;END; 例3: DECLAREv_first_nameVARCHAR2(20);v_hire_dateDATE;v_bonusNUMBER(6,2);BEGINSELECTfirst_name,hire_dateINTOv_first_name,v_hire_dateFROMemployeesWHEREemployee_id=&emp_id;IFv_hire_date>TO_DATE('01-1月-90')THENv_bonus:=800;ELSIFv_hire_date>TO_DATE('01-1月-88')THENv_bonus:=1600;ELSEv_bonus:=2400;ENDIF;DBMS_OUTPUT.PUT_LINE(v_first_name||'雇员的雇佣日期是'||v_hire_date||'、奖金是'||v_bonus);END; 3.2CASE表达式 ---------格式一---------CASE条件表达式WHEN条件表达式结果1THEN语句段1WHEN条件表达式结果2THEN语句段2......WHEN条件表达式结果nTHEN语句段n[ELSE条件表达式结果]END;---------格式二---------CASEWHEN条件表达式1THEN语句段1WHEN条件表达式2THEN语句段2......WHEN条件表达式nTHEN语句段n[ELSE语句段]END; 例4: DECLAREV_gradechar(1):=UPPER('&p_grade');V_appraisalV