如果您无法下载资料,请参考说明:
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
as****16
实名认证
内容提供者
最近下载