ORACLE Developer/2000 编程技巧六则

发表于:2007-06-22来源:作者:点击数: 标签:
下一页 1 2 3 ---- ORACLE 作为大型 数据库 管理系统,它强大而完善的数据管理功能吸引着越来越多的人们的注意。本人在 oracle 系统 开发 中,就developer/2000编程有如下体会,希望能给初学者提供一些参考。 ---- 一、使用设置菜单项属性及form 数据项属性限制

下一页 1 2 3 

   ---- ORACLE 作为大型数据库管理系统,它强大而完善的数据管理功能吸引着越来越多的人们的注意。本人在oracle 系统开发中,就developer/2000编程有如下体会,希望能给初学者提供一些参考。

---- 一、使用设置菜单项属性及form 数据项属性限制不同用户的访问范围

---- 一个应用系统往往有不同的用户,比如: 一个劳资系统中,一个用户负责管理职工基本档案部分,另一个用户负责管理职工工资部分,管理职工基本档案的用户对职工档案只有查询的权限而不能有修改的权限。实现上述功能的一个简单的实现办法是:

---- 设置两个全局变量分别记录用户名和密码,在进入系统时,两个用户分别输入不同的用户名和密码,判断用户名,使SET_MENU_PROPERTY(MENU1,ENABLED,FALSE)语句设置没有查询权限的用户不能访问菜单项’MENU1’。

---- 二、提高表连接的查询速度

---- 在表连接查询时,常常用下列查询方法查询数据是:

SELECT RECORDNO,NAME,AGE

FROM 表1

WHERE 表1.RECORDNO NOT IN

(SELECT RECORDNO

FROM 表2

WHERE BIRTHDAY=’710618’);

---- 笔者发现,如果表1的长度为6000条记录,表2的长度为1000条记录, 则要4分钟才能出结果。原因是使用了比较运算符 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’;

原文转自:http://www.ltesting.net