教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> Oracle >> 入门基础 >> ORACLE Developer/2000 编程技巧 RSS订阅
ORACLE Developer/2000 编程技巧
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

  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’;
  
   三、利用用库模块实现模块资源共享
  
  ---- 在编程中很多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)。
  

来源:upschool.com.cn
作者:
关键字:ORACLE,Developer,编程技巧
发表日期:2007-1-6 1:19:06

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:Clone an Oracle Database   下一篇:ORACLE培训教程(1)-ORACLE系统概述


2008-12-2 21:11:01
本文的相类似文章
  • Oracle字符转换访问服务器漏洞
  • VB 编程技巧
  • Oracle和mysql 的一些简单命令对比参照
  • oracle 的共享连接和专用连接方式之初探
  • Oracle的X$表系列介绍之-X$KSLLCLASS
  • Oracle数据导入导出imp/exp命令
  • 利用 Oracle 10g 技能学习 DB2 9.1
  • Oracle10g对回滚操作时间的准确评估
  • Oracle字符集子集与超级的对应关系
  • Oracle数据库密码破解易如反掌?
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com