本文系統整理 Oracle 核心對象操作:同義詞簡化訪問、序列生成唯一鍵、視圖封裝邏輯、異常處理機制,並針對常見誤區給出最佳實踐建議。
CREATE SYNONYM emp FOR scott.emp; 僅創建者可見CREATE SYNONYM system.emp FOR scott.emp; 需 CREATE ANY SYNONYM 權限CREATE PUBLIC SYNONYM emp FOR scott.emp; 所有用戶可見,需 CREATE PUBLIC SYNONYM 權限GRANT SELECT ON scott.emp TO user,否則公有同義詞也無法查詢數據SELECT * FROM user_synonyms;CREATE SEQUENCE emp_sequence
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
NEXTVAL 每次調用遞增,同一語句多次調用值不同CURRVAL 僅在首次 NEXTVAL 後可用,否則報 ORA-08002CACHE 提升效能但可能導致跳號(如 SHUTDOWN ABORT 丟失緩存值)ROLLBACK 後序列仍遞增ALTER SEQUENCE 無法修改 START WITH 值CREATE VIEW view_dept (deptno, dname, loc) AS
SELECT deptno, dname, loc FROM scott.dept WHERE loc IN ('DALLAS','CHICAGO','BOSTON')
WITH READ ONLY; -- 僅讀,防止誤更新
WITH CHECK OPTION 限制 DML 僅影響視圖可見行,與 WITH READ ONLY 互斥。
BEGIN
-- 業務邏輯
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- 處理查無數據
WHEN TOO_MANY_ROWS THEN
-- 處理多行結果
WHEN OTHERS THEN
-- 統一錯誤日誌記錄
RAISE; -- 重拋或自定義錯誤碼
END;
建議:業務異常顯式捕獲,系統異常記錄日誌後重拋,避免吞噬錯誤導致排查困難。