转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
使用SQLJ编写存储过程         

使用SQLJ编写存储过程

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1082 更新时间:2007/11/14 13:14:38

  在《用SQLJ开发数据库》一文中,我描述了SQLJ是什么;比较它和PL/SQL以及JDBC之间的差别;最后又讨论了SQLJ元素。在本文中,我将一步一步的介绍如何使用DeleteClassification存储过程。

  1. 编写一个SQLJ存储过程

  2. 把它装载进一个Oracle数据库

  3. 在数据库中发布Java方法

  4. 运行过程

  5. 和PL/SQL相对应的过程比较结果

  PL/SQL存储过程

  DeleteClassification过程主要使用两个表工作,ValidTransaction (父表)和Classification (子表),是一种使用TransactionId外键的一到多的关系。 存储过程的目的就是删除所有指定的时期/月份的ValidTransaction的Classification纪录。 ValidTransaction表中的TransactionDate字段选择这个日期范围之内的记录。

  在例子中,ValidTransaction包含12个时期的数据,共有一百二十万行。 在ValidTransaction表中的每一行,Classification表分别有10行与之对应,所以就共有一千二百万行数据。清除一个指定月份的Classification数据意味着从Classification表中删除1百万行数据。

  DeleteClassification过程的代码使用了一些Oracle 8i PL/SQL中的新的特性,象BULK BINDS和BULK COLLECT,用来改善事务的执行性能并增加你在事务中可交付的数据数量,从而减少事务的数目并且降低发生ORA - 01555错误的可能性。 BULK COLLECT子句能使整个TransactToReset游标一步就被取出到v_TransactionId PL/SQL表中。 然后游标立即被关闭以避免交叉获取错误,这样也同样减少ORA - 01555错误的发生。

  最后,这个过程计算删除行数的百分比。 如果结果超过了限度,主关键字索引可能就会被损坏而且你还可能要重建它。

  代码段1 演示了DeleteClassification存储过程的PL/SQL版本。

  创建SQLJ存储过程将要编写服务器端SQLJ代码,另外将在一台客户机上执行编译过程。这个途径提供翻译SQLJ代码的最大灵活性--选项设置和错误处理在客户机上比在服务器上更方便。

  开发一个SQLJ存储过程由五个步骤组成:

  1. 使用Java类的静态方法创建一个SQLJ源文件,后面将要把这个源文件通过SQL封装器与PL/SQL环境合并起来。

  2. 把这个SQLJ源文件编译成一个Java类或者一组Java类。把所有的类合并成一个.jar文件。

  3. 使用loadjava实用程序把这个.jar文件装载入Oracle数据库服务器。 确定装载过程是成功的,为每个Java类都创建一个Java Class类型的模式对象。

  4. 为存储的Java过程/函数创建一个PL/SQL封装器。

  5. 通过从SQL * Plus或者PL/SQL上调用存储的Java过程来测试这些过程。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台