分支控制语句
IF-THEN-ELSE
如:
DECLARE
v_count NUMBER (10) := 0; --定义计数器变量
v_empno NUMBER (4) := 7888; --定义员工编号
BEGIN
SELECT COUNT (1) --首先查询指定的员工编号是否存在
INTO v_count
FROM emp
WHERE empno = v_empno;
--使用IF语句判断,如果员工编号不存在,结果为0
IF v_count = 0
THEN
--则执行INSERT语句,插入新的员工记录
INSERT INTO emp
(empno, ename, job, hiredate, sal, deptno
)
VALUES (v_empno, '张三', '经理', TRUNC (SYSDATE), 1000, 20
);
END IF;
--向数据库提交更改
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM); --输出异常信息
END;
IF-THEN-ELSIF
如:
DECLARE
v_character CHAR(1) :=&tmpVar; --定义替换变量
BEGIN
IF v_character = 'A' --判断字符是否为'A',如果不是,则跳到下一个ELSIF
THEN
DBMS_OUTPUT.put_line ('当前输出字符串:' || v_character);
ELSIF v_character = 'B' --判断字符是否为'B',如果不是,则跳到下一个ELSIF
THEN
DBMS_OUTPUT.put_line ('当前输出字符串:' || v_character);
ELSIF v_character = 'C' --判断字符是否为'C',如果不是,则跳到下一个ELSIF
THEN
DBMS_OUTPUT.put_line ('当前输出字符串:' || v_character);
ELSIF v_character = 'D' --判断字符是否为'D',如果不是,则跳到ELSE语句
THEN
DBMS_OUTPUT.put_line ('当前输出字符串:' || v_character);
ELSE
DBMS_OUTPUT.put_line ('不是A-D之间的字符');
END IF;
END;
简单CASE语句
如:
DECLARE
v_job VARCHAR2 (30); --定义保存CASE选择器的字符型变量
v_empno NUMBER (4) := &empno; --定义用来查询员工的员工编号
BEGIN
SELECT job --获取选择器v_job的值
INTO v_job
F