1、ORACLEPL/SQL编程详解之三作者:来源:2011-05-3023:14:01我要评论(4)核心提示:本篇主要内容如下:3.1条件语句3.2CASE表达式3.3循环3.4标号和GOTO3.5NULL语句介绍PL/SQL的流程控制语句,包括如下三类: l控制语句:IF语句l循环语句:LOOP语句,EXIT语句l顺序语句:GOTO语句,NULL语句 3.1条件语句 IF <布尔表达式> THEN PL/SQL 和 SQL语句END IF;-----------------------IF <布尔表达式> THEN PL/SQL 和 SQL语句ELSE 其它语句END IF;----
2、-------------------IF <布尔表达式> THEN PL/SQL 和 SQL语句ELSIF < 其它布尔表达式> THEN 其它语句ELSIF < 其它布尔表达式> THEN-10- 其它语句ELSE 其它语句END IF; 提示:ELSIF不能写成ELSEIF例1: DECLARE v_empno employees.employee_id%TYPE :=&empno; V_salary employees.salary%TYPE; V_comment VARCHAR2(35);BEGIN SELECT salary INTO v_sa
3、lary FROM employees WHERE employee_id = v_empno; IF v_salary < 1500 THEN V_comment:= '太少了,加点吧~!'; ELSIF v_salary <3000 THEN V_comment:= '多了点,少点吧~!'; ELSE V_comment:= '没有薪水~!'; END IF; DBMS_OUTPUT.PUT_LINE(V_comment); exception when no_data_found then DBMS_
4、OUTPUT.PUT_LINE('没有数据~!'); when others then DBMS_OUTPUT.PUT_LINE(sqlcode
5、
6、 '---'
7、
8、 sqlerrm); END; 例2: DECLARE v_first_name VARCHAR2(20); v_salary NUMBER(7,2);BEGIN SELECT first_name, salary INTO v_first_name, v_salary FROM employees WHERE employee_id = &emp_id; DBMS
9、_OUTPUT.PUT_LINE(v_first_name
10、
11、'雇员的工资是'
12、
13、v_salary); IF v_salary < 10000 THEN-10- DBMS_OUTPUT.PUT_LINE('工资低于10000'); ELSE IF 10000 <= v_salary AND v_salary < 20000 THEN DBMS_OUTPUT.PUT_LINE('工资在10000到20000之间'); ELSE DBMS_OUTPUT.PUT_LINE('工资高于20000'); END IF;
14、 END IF;END; 例3:DECLARE v_first_name VARCHAR2(20); v_hire_date DATE; v_bonus NUMBER(6,2);BEGIN SELECT first_name, hire_date INTO v_first_name, v_hire_date FROM employees WHERE employee_id = &emp_id; IF v_hire_date > TO_DATE('01-1月-90') THEN v_bonus := 800; ELSIF v_hire_date >
15、 TO_DATE('01-1月-88') THEN v_bonus := 1600; ELSE v_bonus := 2400; END IF; DBMS_OUTPUT.PUT_LINE(v_first_name