熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE Developer/2000 編程技巧

2013-11-13 16:24:05  來源: Oracle 

  ORACLE 作為大型數據庫管理系統它強大而完善的數據管理功能吸引著越來越多的人們的注意本人在oracle 系統開發中就developer/編程有如下體會希望能給初學者提供一些參考
  
  
  使用設置菜單項屬性及form 數據項屬性限制不同用戶的訪問范圍
  
  
   一個應用系統往往有不同的用戶比如: 一個勞資系統中一個用戶負責管理職工基本檔案部分另一個用戶負責管理職工工資部分管理職工基本檔案的用戶對職工檔案只有查詢的權限而不能有修改的權限實現上述功能的一個簡單的實現辦法是:
  
  
   設置兩個全局變量分別記錄用戶名和密碼在進入系統時兩個用戶分別輸入不同的用戶名和密碼判斷用戶名使SET_MENU_PROPERTY(MENUENABLEDFALSE)語句設置沒有查詢權限的用戶不能訪問菜單項MENU
  
  
  提高表連接的查詢速度
  
  
   在表連接查詢時常常用下列查詢方法查詢數據是
  
  
  SELECT RECORDNONAMEAGE
  
  FROM 表
  
  WHERE 表RECORDNO NOT IN
  
  (SELECT RECORDNO
  
  FROM 表
  
  WHERE BIRTHDAY=);
  
  
   筆者發現如果表的長度為條記錄的長度為條記錄 則要分鐘才能出結果原因是使用了比較運算符 NOT IN 它的邏輯測試速度是最慢的利用外連接替換NOT IN 運算符查詢時間則縮短為修改方法如下:
  
  SELECT RECORDNONAMEAGE
  
  FROM 表
  
  WHERE 表RECORDNO=表RECORDNO(+)
  
  AND 表RECORDNO IS NULL
  
  AND 表BIRTHDAY(+)=;
  
   三利用用庫模塊實現模塊資源共享
  
   在編程中很多FROM 模塊需要共用一個程序單元ORACLE FORM 提出了庫模塊的概念使用庫模塊建立共享程序單元庫既減少了磁盤占用空間又增加程序的可維護性使用庫模塊共享程序單元的過程是點擊系統菜單的filenewliberary選項建立一庫模塊在program units節點下增加一程序單元 寫入需共享程序的單元編碼 編譯後存盤當FORM模塊需共享時在模塊的Attached Libraries節點下連接庫模塊(此時屏幕會提示是否要刪除路徑用戶選擇NO)這樣用戶便可在FORM模塊中直接使用共享程序單元了
  
  
  四易導致查詢數據錯誤的原因
  
  
   在執行數據查詢時經常發現查詢結果與預想的不同主要原因是
  
  
   使用 SELECT * FROM <表名> WHERE <字段名> LIKE % 語句查詢不出 <字段名>為NULL的字段此時需對字段為NULL的情況另外處理SELECT * FROM <表名> WHERE <字段名> LIKE % OR <字段名> IS NULL
  
  
   使用union 字段連接各表時連接順序不是按書寫的先後順序而是按連接表的第一個字段排序因此為了使表按預想的順序連接需在各表中插入第一字段指定排序序號
  
  
  使用視圖組織報表數據簡單且易於維護
  
  
   ORACLE REPORT提供了多種報表格式但在報表中定義各種統計信息不僅繁瑣而且不利於今後的維護使用視圖預先將各種統計匯總數據准備好可以起到事半功倍的作用一旦數據源有所調整只需修改後台視圖而不用再改前端程序了
  
  
  表結構為 UNIT NAME RECORENO SEX
  
  辦公室 王五
  
  財務科 李四
  
  
  
  
   首先建立視圖對數據進行匯總
  
  CREATE VIEW RYTJ (UNIT BOYGIRL)
  
  AS SELECT UNIT SUM(DECODE(SEX
  
  )) SUM(DECODE(SEX) )
  
  FROM 表
  
  
   使用 ORACLE REPORT 對視圖RYTJ建立報表
  
   六 給報表加序號的簡單辦法
  
  
   ORACLE REPORT 沒有提供加序號功能使用下述簡單方法可實現給報表自動加序號在數據模板中 向查詢組中加入一個公式列 CF_XH NUMBER() 賦初值為 點擊[EDIT] 按鈕 插入編碼RETURN(:CF_CH+)

From:http://tw.wingwit.com/Article/program/Oracle/201311/18262.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.