EXCEPTION WHEN 错误1[OR 错误2] THEN 语句序列1; WHEN 错误3[OR 错误4] THEN 语句序列2; ... WHEN OTHERS 语句序列n; END;
例:
1 2 3 4 5 6 7 8 9 10
SET SERVEROUTPUT ON DECLARE v_name VARCHAR2(10); BEGIN SELECT ename INTO v_name FROM emp WHERE empno = 1234; DBMS_OUTPUT.PUT_LINE('该雇员名字为:'|| v_name); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('编号错误,没有找到相应雇员!'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('发生其他错误!'); END;
集合运算
操作
描述
UNION
并集,合并两个操作的结果,去掉重复的部分
UNION ALL
并集,合并两个操作的结果,保留重复的部分
MINUS
差集,从前面的操作结果中去掉与后面操作结果相同的部
INTERSECT
交集,取两个操作结果中相同的部分
如: 查询部门10和部门20的所有职务。
1 2 3
SELECT job FROM emp WHERE deptno = 10 UNIONSELECT job FROM emp WHERE deptno = 20;
如: 查询部门10和20中是否有相同的职务和工资。
1 2 3
SELECT job, sal FROM emp WHERE deptno = 10 INTERSECT SELECT job, sal FROM emp WHERE deptno = 20;
如: 查询只在部门表中出现,但没有在雇员表中出现的部门编号。
1 2 3
SELECT deptno FROM dept MINUS SELECT deptno FROM emp ;