国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE Developer/2000 編程技巧六則

2024-08-29 13:31:57
字體:
供稿:網(wǎng)友

---- oracle 作為大型數(shù)據(jù)庫管理系統(tǒng),它強大而完善的數(shù)據(jù)管理功能吸引著越來越多的人們的注意。本人在oracle 系統(tǒng)開發(fā)中,就developer/2000編程有如下體會,希望能給初學者提供一些參考。

---- 一、使用設(shè)置菜單項屬性及form 數(shù)據(jù)項屬性限制不同用戶的訪問范圍

---- 一個應用系統(tǒng)往往有不同的用戶,比如: 一個勞資系統(tǒng)中,一個用戶負責管理職工基本檔案部分,另一個用戶負責管理職工工資部分,管理職工基本檔案的用戶對職工檔案只有查詢的權(quán)限而不能有修改的權(quán)限。實現(xiàn)上述功能的一個簡單的實現(xiàn)辦法是:

---- 設(shè)置兩個全局變量分別記錄用戶名和密碼,在進入系統(tǒng)時,兩個用戶分別輸入不同的用戶名和密碼,判斷用戶名,使set_menu_property(menu1,enabled,false)語句設(shè)置沒有查詢權(quán)限的用戶不能訪問菜單項’menu1’。

---- 二、提高表連接的查詢速度

---- 在表連接查詢時,常常用下列查詢方法查詢數(shù)據(jù)是:

select recordno,name,age

from 表1

where 表1.recordno not in

(select recordno

from 表2

where birthday=’710618’);

---- 筆者發(fā)現(xiàn),如果表1的長度為6000條記錄,表2的長度為1000條記錄, 則要4分鐘才能出結(jié)果。原因是使用了比較運算符 not in ,它的邏輯測試速度是最慢的。利用外連接替換not in 運算符,查詢時間則縮短為50秒。修改方法如下:

select recordno,name,age

from 表1,表2

where 表1.recordno=表2.recordno(+)

and 表2.recordno is null

and 表2.birthday(+)=’710618’;

---- 三、利用用庫模塊實現(xiàn)模塊資源共享

---- 在編程中很多from 模塊需要共用一個程序單元。oracle form 4.5提出了庫模塊的概念。使用庫模塊建立共享程序單元庫,既減少了磁盤占用空間,又增加程序的可維護性。使用庫模塊共享程序單元的過程是:點擊系統(tǒng)菜單的file-new-liberary選項,建立一庫模塊,在program units節(jié)點下增加一程序單元, 寫入需共享程序的單元編碼, 編譯后存盤。當form模塊需共享時,在模塊的attached libraries節(jié)點下連接庫模塊(此時屏幕會提示是否要刪除路徑,用戶選擇no)。這樣,用戶便可在form模塊中直接使用共享程序單元了。

---- 四、易導致查詢數(shù)據(jù)錯誤的原因

---- 在執(zhí)行數(shù)據(jù)查詢時,經(jīng)常發(fā)現(xiàn)查詢結(jié)果與預想的不同,主要原因是:

---- 1.使用 select * from <表名> where <字段名> like ’%’ 語句查詢不出 <字段名>為null的字段。此時需對字段為null的情況另外處理。如:select * from <表名> where <字段名> like ’%’ or <字段名> is null

---- 2.使用union 字段連接各表時,連接順序不是按書寫的先后順序,而是按連接表的第一個字段排序。因此,為了使表按預想的順序連接,需在各表中插入第一字段指定排序序號。


 

---- 五、使用視圖組織報表數(shù)據(jù)簡單且易于維護

---- oracle report2.5提供了多種報表格式,但在報表中定義各種統(tǒng)計信息不僅繁瑣而且不利于今后的維護,使用視圖預先將各種統(tǒng)計、匯總數(shù)據(jù)準備好,可以起到事半功倍的作用,一旦數(shù)據(jù)源有所調(diào)整,只需修改后臺視圖,而不用再改前端程序了。

表1結(jié)構(gòu)為: unit name recoreno sex

辦公室 王五 1 男

財務(wù)科 李四 2 女

.. .. .. ..

---- 1. 首先建立視圖對數(shù)據(jù)進行匯總:

create view rytj (unit, boy,girl)

as select unit, sum(decode(sex,’男’

,1,0)) , sum(decode(sex,’女’,1,0) )

from 表1;

---- 2. 使用 oracle report 2.5 對視圖’rytj’建立報表。

---- 六、 給報表加序號的簡單辦法

---- oracle report 2.5 沒有提供加序號功能,使用下述簡單方法可實現(xiàn)給報表自動加序號:在數(shù)據(jù)模板中, 向查詢組中加入一個公式列 cf_xh number(4), 賦初值為0, 點擊[edit] 按鈕, 插入編碼return(:cf_ch+1)。

商業(yè)源碼熱門下載www.html.org.cn

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万荣县| 天柱县| 莱芜市| 铜梁县| 辽宁省| 安图县| 勃利县| 香格里拉县| 沈丘县| 枞阳县| 孟津县| 陇南市| 竹北市| 庆阳市| 商洛市| 鸡泽县| 奇台县| 松原市| 江都市| 松溪县| 云龙县| 天水市| 镇康县| 乡宁县| 航空| 延津县| 桓仁| 安吉县| 丹棱县| 白银市| 阳泉市| 尉氏县| 千阳县| 奎屯市| 巴塘县| 南丰县| 永昌县| 永昌县| 城固县| 洛浦县| 五台县|