ORACLE Developer/2000 编程技巧六则

2016-02-19 16:43 1 1 收藏

下面请跟着图老师小编一起来了解下ORACLE Developer/2000 编程技巧六则,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

---- 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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

WHERE BIRTHDAY=’710618’);

---- 笔者发现,如果表1的长度为6000条记录,表2的长度为1000条记录, 则要4分钟才能出结果。原因是使用了比较运算符 NOT IN ,它的逻辑测试速度是最慢的。利用外连接替换NOT IN 运算符,查询时间则缩短为50秒。修改方法如下:

SELECT RECORDNO,NAME,AGE

FROM 表1,表2

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

WHERE 表1.RECORDNO=表2.RECORDNO(+)

AND 表2.RECORDNO IS NULL

AND 表2.BIRTHDAY(+)=’710618’;

---- 三、利用用库模块实现模块资源共享

---- 在编程中很多FROM 模块需要共用一个程序单元。ORACLE FORM 4.5提出了库模块的概念。使用库模块建立共享程序单元库,既减少了磁盘占用空间,又增加程序的可维护性。使用库模块共享程序单元的过程是:点击系统菜单的file-new-liberary选项,建立一库模块,在program units节点下增加一程序单元, 写入需共享程序的单元编码, 编译后存盘。当FORM模块需共享时,在模块的Attached Libraries节点下连接库模块(此时屏幕会提示是否要删除路径,用户选择NO)。这样,用户便可在FORM模块中直接使用共享程序单元了。

---- 四、易导致查询数据错误的原因

---- 在执行数据查询时,经常发现查询结果与预想的不同,主要原因是:

---- 1.使用 SELECT * FROM 表名 WHERE 字段名 LIKE ’%’ 语句查询不出 字段名为NULL的字段。此时需对字段为NULL的情况另外处理。如:SELECT * FROM 表名 WHERE 字段名 LIKE ’%’ OR 字段名 IS NULL

---- 2.使用union 字段连接各表时,连接顺序不是按书写的先后顺序,而是按连接表的第一个字段排序。因此,为了使表按预想的顺序连接,需在各表中插入第一字段指定排序序号。
---- 五、使用视图组织报表数据简单且易于维护

---- ORACLE REPORT2.5提供了多种报表格式,但在报表中定义各种统计信息不仅繁琐而且不利于今后的维护,使用视图预先将各种统计、汇总数据准备好,可以起到事半功倍的作用,一旦数据源有所调整,只需修改后台视图,而不用再改前端程序了。

表1结构为: UNIT NAME RECORENO SEX

办公室 王五 1 男

财务科 李四 2 女

.. .. .. ..

---- 1. 首先建立视图对数据进行汇总:

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 没有提供加序号功能,使用下述简单方法可实现给报表自动加序号:在数据模板中, 向查询组中加入一个公式列 CF_XH NUMBER(4), 赋初值为0, 点击[EDIT] 按钮, 插入编码RETURN(:CF_CH+1)。

来源:https://www.tulaoshi.com/n/20160219/1612906.html

延伸阅读
标签: 办公软件
1.逆页序打印 如果你有一篇很多页的文档需要打印,按照Word中的默认设置总是从第一页打印到最后一页,所以整篇文档打印完后是最后一页在最上面,第一页在最下面,这样我们又要手工将所有的页逆序整理一边,十分麻烦。其实我们在打印前只要先在“工具”—>“选项”—>“打印”选项卡中选中“逆页序打印”,即可在打印时按逆序从最后一页打...
1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列. 2.外部联接"+"的用法 外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行不直接匹配于带"+"预算...
标签: 办公软件
·徐海斌· 一、自动缩进两个汉字 我们中国人写东西都有段首空两个汉字俗称低两格的习惯,如果每次都要在段首敲四个空格半角键,实在是太麻烦了,Word 2000为我们提供了更为方便的办法,选中所要设置缩进的段落,打开“格式”菜单中的“段落”设置,在“特殊格式”下拉框中选择“首行缩进”,在“度量值”中选择“2字符”。当然...
标签: windows 操作系统
桌面是电脑呈现在我们眼前的第一“景色”,对于最经常打交道的它我们应该予以更多的了解。下文为大家介绍了Windows XP系统桌面的几种变化,希望您能由此更多的了解并掌握桌面技巧。 一、显示桌面 当安装完成Windows XP第一次登录使用时的桌面如图1所示,右下角只有一个系统图标“回收站”。 图1 Windows XP...
标签: 办公软件
一、自动缩进两个汉字 我们中国人写东西都有段首空两个汉字俗称低两格的习惯,如果每次都要在段首敲四个空格半角键,实在是太麻烦了,Word 2000为我们提供了更为方便的办法,选中所要设置缩进的段落,打开“格式”菜单中的“段落”设置,在“特殊格式”下拉框中选择“首行缩进”,在“度量值”中选择“2字符”。当然,最方便的办法还是...

经验教程

467

收藏

48
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部