网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何在你的Linux机器安装Oracle.
.Oracle 8i for NT 的安装.
.修改oracle监听占用的8080端口.
.Oracle和SQL Server存储调试和出.
.rman备份,控制文件丢失的解决办法.
.ORACLE 9.2.0.5 PATCHES FOR .
.在AIX 5L上快速部署Oracle.
.Fravo Oracle 1Z0-033 v3.0.
.Oracle Developer/2000使用技巧点.
.Oracle数据完整性嵌套事务调用分.
.如何评 估OS 安 全.
.ERwin---简化了的数据库设计工具.
.如何将Oralce数据库中孤独临时段.
.Oracle中巧取指定记录与巧用外关.
.[转载] 编写安全的 Transact-SQL.
.TestKing Oracle 1Z0-501 Edt1.1.
.ORACLE之常用FAQ V1.0一(构架体系.
.如何学习Oracle9i认证专员(OCA).
.自由项目实施.
.Oracle套件黄金组合 搭建完整SOA.

ORACLE系统开发过程中的几条实用技术

发表日期:2008-2-9



  作者:哈尔滨工业大学法院街13号 1226信箱(150001) 徐淑锋 左
  美云
  Oracle系统使用方便,功能强大,便于维护,安全性好。经过十多
  年的发展,已成为功能最齐全的、最受欢迎的关系数据库治理系统。
  它不但成功地运行在大型机上,而且在小型机和微型机上也广泛使用
  。笔者在开发过程中积累了一些实用技术,在这里挑选几条与大家交
  流。
  
  一、Foxbase 与Oracle数据库的双向转换技术
  DBaseⅢ、FoxBase曾是国内外应用广泛的数据库系统,很多企业
  单位都以此建立了自己的治理信息系统。随着Oracle在国内的推广,
  非凡是一些大型的企业需要开发新型的基于Oracle RDBMS的网络治理
  系统,以适应治理发展与企业规模扩大的需要。在新旧系统转换的过
  程中,我们希望能够充分利用已有的数据库资源,避免重复输入。为此
  ,我们使用了PRO*C程序,在DOS环境下执行经过PRO*C预编译、MSC编译
  和联接后形成的.EXE文件,直接将.DBF数据库文件转入相应的Oracle
  表中。
  通过对.DBF为文件结构的剖析,在Oracle数据库中建立具有相应
  列(Column)的数据表。具体做法是:根据.DBF库文件各字段的定义,生
  成一个字符串,用PRO*C的动态定义语句EXECUTE IMMEDIATE执行SQL语
  句"CREATE TABLE",在Oacle数据库中建立一个数据表,然后通过循环
  语句把由.DBF文件读出的记录数据加入到Oracle数据表中。在循环体
  中,按数据文件的格式,每次读取一条记录,并转换为合适的字符串,运
  用PRO*C的动态定义语句EXECUTE IMMEDIATE执行SQL语句"INSERT IN-
  TO",把读出的数据插入数据表中。
  反过来,Oracle数据库也可以转换到FoxBase数据库。思路是:先
  从Oracle的数据字典中取出表定义、字段定义;再按照.DBF库文件的
  存储结构,直接生成.DBF库文件的标识部、字段描述部,用Oracle表字
  段的相应数据填写;最后将Oracle表中的记录写到生成的FoxBase数据
  记录体域,从而实现了Oracle数据库与FoxBase数据库的双向转换。
  
  二、巧用文本编辑软件提高Oracle开发效率
  Oracle系统的文本编辑功能及全屏幕编辑功能并不太尽人意,在
  系统开发过程中,我们如能结合使用国内流行的文本编辑软件(如CCED
  、WPS等),会收到更好的效果。
  1、建立基表
  SQL*PLUS是一种非过程化的交互式命令语言,在该环境下,键入的
  SQL命令被保存在SQL缓冲区中,新键入的语句将冲掉上一次键入的语
  句,而且,在SQL*PLUS下,只能用命令I、C、D、A进行行编辑,不能进行
  全屏幕编辑,而建立一个基表要定义许多字段,命令输入中难免发生错
  误,这给开发者增加了难度。
  解决的方法是:用文本编辑软件建立一个扩展名.SQL的命令文件,
  文件中应包含建表命令"CREATE TABLE";然后,在SQL*PLUS下用START
  命令运行该文件,如有错误可再回到文本编辑状态下修改。
  这种方法很适合开发初期建立大量的基表、视图。通过充分利用
  文本编辑软件中的块复制、行复制等功能,可大大减少输入工作量。
  2、更新FORM
  建立FORM时通过人机对话的方式,产生两类文件:一类是INP文本
  文件,记录了人机对话的内容及FORM的格式;另一类是FRM可执行文件,
  此文件是用IAG对INP文件编译后生成的。
  在生成FORM的过程中,假如人机对话有误或屏幕格式需调整,只需
  用文字编辑软件对INP文件进行修改,修改后用IAG命令进行编译即可,
  不必重新进行整个FORM的设计。假如在已做好的FORM中有些块定义和
  需要做的FORM中块定义完全相同,就可以把已有的INP文件拷贝过来直
  接使用,此方法为FORM的建立提供了一种快速有效的途径。
  所以,文本编辑软件的有效使用,增加了Oracle系统应用开发的灵
  活性。
  
  三、PRO*C程序调试过程中的出错检验技巧
  在PRO*C程序中,使用SQL语句对数据库数据进行操作时,并不能保
  证每个SQL语句一定能执行成功,而这种导致SQL操作不成功的错误在
  预编译、编译和连接过程中却又经常发现不出来。为了解决SQL语句
  的出错检验问题,我们在程序中利用通讯区SQLCA返回的信息来检测SQ
  L语句的执行情况。

  在PRO*C程序开头使用了"EXEC SQL INCLUDE SQL-CA"语句,它包
  含名为SQLCA的文件,在SQLCA文件中定义了sqlca的结构:
  strUCt sqlca{
  char sqlcaid[8];
  long sqlcabc;
  long sqlcode;
  struct{
  unsigned short sqlerrml;
  char sqlerrmc[70];
  } sqlerrm;
  char sqlerrp[8];
  long sqlerrd[6];
  char sqlwarn[8];
  char sqlext[8];
  };
  struct sqlca sqlca;
  sqlca是个结构变量,系统将SQL语句执行情况的信息存入到相应
  的结构成员中。其中,sqlca.sqlcode中存放的是出错代码,规定:
  =0 表示执行成功,
  sqlca.sqlcode +1043表示"No row found"或返回的是基表中
  最后一行,
  <0 表示SQL执行不成功,程序有错或系统故障。
  在子结构sqlca.sqlerrm中存放出错的正文信息,其中:
  sqlca.sqlerrm.sqlerrmc:存放对应 sqlca.sqlcode中出错代码
  的正文信息;
  sqlca.sqlerrm.sqlerrml:存放正文信息的长度。
  所以,程序调试过程中,我们只要在需要高度的SQL语句后面加上
  如下的一段程序:
  printf("sqlcode is :%d\n",sqlca,sqlcode);
  if sqlca.sqlcode<0 {
  printf("sqlca.sqlerrm is:%s\n",sqlca.sqlerrm.sqler-rmc
  );
  exit(0);
  }
  我们根据sqlca.sqlcode的值判定SQL是成功。根据sqlca.sqlerr
  m的内容判定错误的原因,对程序进行重新的修改,从而提高了程序检
  测的效率。
  
  四、运用动态语句实现程序通用设计
  Oracle数据库治理系统提供了四种类型的动态语句:
  A:非查询的无参数动态语句
  B:非查询的带参数动态语句
  C:查询动态语句
  D:使用描述符的动态语句
  在程序中,将一个SQL语句放到一个字符串变量之中,利用动态语
  句即可将该SQL语句执行。因此,在应用系统设计过程中,只要变换作
  为SQL语句的字符串内容便可执行不同的SQL语句。假如SQL语句字符
  串从磁盘文件中读来,那么,只要改变该磁盘文件的内容,就能动态地
  控制SQL语句的执行内容,而不需对应用程序作任何改变,正是由于这
  个特点,使得程序通用设计成为一种可能。
  用动态语句,我们就可以通过键盘方式或其它方式改变SQL语句,
  运用一个程序完成对不同基表的数据插入、删除、修改和查询,非凡
  是通用报表打印的设计中,更体现了动态语句的特点。在设计过程中,
  我们不把表头、表尾及表的格式这些难以调整和维护的内容限定在程
  序语句中,而是把它加入到动态查询程序中。在维护报表系统时,我们
  同样不用修改报表程序。同时,在程序加入"用户出口"调用别的可执
  行程序或DOS操作系统命令,用以完成一些通用程序本身所完成不了的
  功能,从而提高了通用程序的实用价值。
  除上述四条经验之外,对于如何解决一屏多记录分块设置,零页的
  使用及快速查找当前记录,合理解决分区空间不足等问题,由于篇幅所
  限,就不一一详述了。
上一篇:建立实验数据库模型 人气:782
下一篇:使用U盘,V盘,移动硬盘的终极方法 人气:689
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐