Some notes of Learning Oralce.
异常处理与集合运算
错误处理的语法如下:1
2
3
4
5
6EXCEPTION
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
10SET 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
3SELECT job FROM emp WHERE deptno = 10
UNION SELECT job FROM emp
WHERE deptno = 20;
如:
查询部门10和20中是否有相同的职务和工资。1
2
3SELECT job, sal FROM emp WHERE deptno = 10
INTERSECT
SELECT job, sal FROM emp WHERE deptno = 20;
如:
查询只在部门表中出现,但没有在雇员表中出现的部门编号。1
2
3SELECT deptno FROM dept
MINUS
SELECT deptno FROM emp ;