首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle 開發實戰技巧大全:SQL*Plus、Developer 2000 與 DBA 管理精華

     編輯:關於SqlServer

嶺澳核電站採 Oracle 7.3 + Developer/Designer 2000 架構,作者沉澱多年實戰技巧,涵蓋 SQL*Plus 高階用法、Developer 2000 表單/報表開發祕籍、資料庫管理核心操作,供同行參考。

一、SQL*Plus 核心技巧

1. 查找與刪除重複記錄

-- 查找 DRAWING、DSNO 重複
SELECT DRAWING, DSNO FROM EM5_PIPE_PREFAB
WHERE ROWID != (SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);

-- 刪除重複(保留 ROWID 最大者)
DELETE FROM EM5_PIPE_PREFAB
WHERE ROWID != (SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);

2. 批量編譯視圖/授權/同義詞

資料庫遷移重建後視圖失效,利用 PL/SQL 動態生成腳本:

SPOOL ON.SQL
SELECT 'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
SPOOL OFF
@ON.SQL

-- 授權與同義詞同理
SELECT 'GRANT SELECT ON '||TNAME||' TO USERNAME;' FROM TAB;
SELECT 'CREATE SYNONYM '||TNAME||' FOR USERNAME.'||TNAME||';' FROM TAB;

3. 外連接替代 NOT IN 大幅提速

雙表 1 萬筆,NOT IN 需 30 分鐘(笛卡兒積);改用外連接 LEFT JOIN ... WHERE b.key IS NULL 降至 1 分鐘內。

4. 觸發器中使用 :OLD/:NEW 存取新舊值

:OLD.DEPT_NO 取修改前值,:NEW.DEPT_NO 取修改後值,审計與衍生欄位維護必備。

二、Developer 2000 表單/選單/列表進階

  • 自訂視窗標題:WHEN-NEW-FORM-INSTANCE 觸發器中 set_window_property(FORMS_MDI_WINDOW, TITLE, '自訂標題')。
  • 隱藏選單 Window 項目:建立 Magic 類型 Item,Command Type 設 Null,Magic Item 選 Window,Label 留空。
  • 動態下拉列表 (LOV):WHEN-NEW-FORM-INSTANCE 呼叫自訂 Procedure,動態查詢賦值給 List Item,實現資料驅動列表。
  • 多記錄超多欄位佈局:Content 畫布放關鍵欄,Stack 畫布放其餘欄位,水平捲軸+Tab 鍵無縫瀏覽。
  • 受限觸發器中提交:建立 Server 端 Procedure DB_SQL_COMMIT,表單中呼叫繞過限制。
  • 自動遞增序號:WHEN-CREATE-RECORD 觸發器 :VO_ID := :SYSTEM.TRIGGER_RECORD。
  • 跨 Form 傳遞 WHERE 條件:參數列表 ADD_PARAMETER(PM, 'THE_WHERE', ...) + 目標 Form WHEN-NEW-FORM-INSTANCE 中 SET_BLOCK_PROPERTY(..., DEFAULT_WHERE, :PARAMETER.THE_WHERE)。
  • 主從表連續輸入免提示:修改 Clear_All_Master_Details 程序移除提示邏輯。

三、資料庫管理鐵律

  1. 清空表必用 TRUNCATE TABLE:DROP/DELETE 不釋放 Tablespace 空間,反覆操作導致空間耗盡。
  2. 資料檔移動標準流程:
    1. SVRMGR> shutdown 關閉實例
    2. OS 層面 mv 移動檔案
    3. STARTUP MOUNT 裝載資料庫 → ALTER DATABASE RENAME FILE '舊路徑' TO '新路徑'
    4. ALTER DATABASE OPEN 開啟實例

這些技巧直擊生產環境痛點,兼顧效能、可維護性與運營安全,是 Oracle 開發者的寶貴財富。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved