• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > DB2 存储过程开发最佳实践

DB2 存储过程开发最佳实践

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了db2存储过程,db2存储过程语法,db2存储过程实例,db2存储过程教程,db2 执行存储过程等相关知识,希望本文的分享对您有所帮助
</div>

      本文以 DB2 开发人员的角度介绍了在 DB2 存储过程开发中需要注意的事项和技巧。新手如果能够按照本文介绍的最佳实践来开发存储过程,可以避免一些常见的错误,从而编写出高效的程序。本文从初始化参数、游标、异常处理、临时表的使用以及如何寻找并 rebind 非法存储过程等常见问题进行了着重讨论,并且给出了示例代码。
      DB2 提供的强大功能可以让开发人员创建出非常高效稳定的存储过程。但对于初学者来说,开发出这样的程序并不容易。本文主要讨论开发高效稳定的 DB2 存储过程的一些常用技巧和方法。

    读者定位为具有一定开发经验的 DB2 开发经验的开发人员。

    读者可以从本文学习到如何编写稳定、高效的存储过程。并可以直接使用文章中提供的 DB2 代码,从而节省他们的开发和调试时间,提高效率。

    本文以 DB2 开发人员的角度介绍了在 DB2 存储过程开发中需要注意的事项和技巧。新手如果能够按照本文介绍的最佳实践来开发存储过程,可以避免一些常见的错误,从而编写出高效的程序。本文从初始化参数、游标、异常处理、临时表的使用以及如何寻找并 rebind 非法存储过程等常见问题进行了着重讨论,并且给出了示例代码。

    在存储过程中,开发人员能够声明和设置 SQL 变量、实现流程控制、处理异常、能够对数据进行插入、更新或者删除。同时,客户应用(这里指调用存储过程的应用程序,它可以是 JDBC 的调用,也可以是 ODBC 和 CLI 等)和存储过程之间可以传递参数,并且从存储过程中返回结果集。其中,使用 SQL 编写的 DB2 存储过程是在开发中常见的一种存储过程。本文主要讨论此类存储过程。

    最佳实践 1:在创建存储过程语句中提供必要的参数

    创建存储过程语句(CREATE PROCEDURE)可以包含很多参数,虽然从语法角度讲它们不是必须的,但是在创建存储过程时提供它们可以提高执行效率。下面是一些常用的参数

    容许 SQL (allowed-SQL)

    容许 SQL (allowed-SQL)子句的值指定了存储过程是否会使用 SQL 语句,如果使用,其类型如何。它的可能值如下所示:

    NO SQL: 表示存储过程不能够执行任何 SQL 语句。

    CONTAINS SQL: 表示存储过程可以执行 SQL 语句,但不会读取 SQL 数据,也不会修改 SQL 数据。

    READS SQL DATA: 表示在存储过程中包含不会修改 SQL 数据的 SQL 语句。也就是说该储存过程只从数据库中读取数据。

    MODIFIES SQL DATA: 表示存储过程可以执行任何 SQL 语句。即可以对数据库中的数据进行增加、删除和修改。

    如果没有明确声明 allowed-SQL,其默认值是 MODIFIES SQL DATA。不同类型的存储过程执行的效率是不同的,其中 NO SQL 效率最好,MODIFIES SQL DATA 最差。如果存储过程只是读取数据,但是因为没有声明 allowed-SQL 使其被当作对数据进行修改的存储过程来执行,这显然会降低程序的执行效率。因此创建存储过程时,应当明确声明其 allowed-SQL。

    返回结果集个数(DYNAMIC RESULT SETS n)

    存储过程能够返回 0 个或者多个结果集。为了从存储过程中返回结果集,需要执行如下步骤:

    在 CREATE PROCEDURE 语句的 DYNAMIC RESULT SETS 子句中声明存储过程将要返回的结果集的数量(number-of-result-sets)。如果这里声明的返回结果集的数量小于存储过程中实际返回的结果集数量,在执行该存储过程的时候,DB2 会返回一个警告。

    使用 WITH RETURN 子句,在存储过程体中声明游标。

    为结果集打开游标。当存储过程返回的时候,保持游标打开。

    在创建存储过程时指定返回结果集的个数可以帮助程序员验证存储过程是否返回了所期待数量的结果集,提高了程序的完整性。

    最佳实践 2:对输入参数进行必要的的检查和预处理

    无论使用哪种编程语言,对输入参数的判断都是必须的。正确的参数验证是保证程序良好运行的前提。同样的,在 DB2 中对输入参数的验证和处理也是很重要的。正确的验证和预处理操作包括:

    如果输入参数错误,存储过程应返回一个明确的值告诉客户应用,然后客户应用可以根据返回的值进行处理,或者向存储过程提交新的参数,或者去调用其他的程序。

    根据业务逻辑,对输入参数作一定的预处理,如大小写的转换,NULL 与空字符串或 0 的转换等。

    在 DB2 储存过程开发中,如需要遇到对空(NULL)进行初始化,我们可以使用 COALESCE 函数。COALESCE函数返回第一个非空的参数,语法如下:

     2 3 4 5  下一页</div> </div> </div> </div> </div>
    分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

    您可能想查找下面的文章:

    • DB2 存储过程中如何使用 Optimization Profile
    • 为何修改机器名后DB2实例会无法启动
    • DB2下数据转移任务操作实例
    • DB2 V7存储过程构建环境设置
    • 实例讲解IBM DB2中提高并发度的三个方法
    • 为什么修改机器名后DB2实例会无法启动
    • 讲解主机DB2 9存储过程的规划和实施技巧
    • 实例讲解DB2中的表空间
    • DB2通用升级方法的一般过程
    • DB2 认证考试准备教程

    相关文章

    • 2017-06-28分析DB2 for Linux,UNIX,and Windows中的锁等待情形
    • 2017-06-28关于IBM DB2 数据库的使用小技巧小结
    • 2017-06-28DB2的数据类型
    • 2017-06-28雇员工作空间系列: 配置和开发 DB2 Content Manager 8.2 的单点登录 portlet
    • 2017-06-28安装 DB2 Version 8.1.6
    • 2017-06-28DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用程序中集成来自不同数据源的数据
    • 2017-06-28专访IBM DB2专家:XML引发数据库二次革命?
    • 2017-05-11DB2 常用命令速查(备忘)
    • 2017-06-28内容管理: 未雨绸缪的内容管理
    • 2017-06-28一台Linux或UNIX机器上设置多个DB2系统

    文章分类

    • MsSql
    • Mysql
    • oracle
    • MariaDB
    • DB2
    • SQLite
    • PostgreSQL
    • MongoDB
    • Redis
    • Access
    • 数据库其它
    • sybase
    • HBase

    最近更新的内容

      • DB2 V9.5 工作负载管理之阈值(THRESHOLD)
      • DB2 V9.7 分区索引新特性
      • DB2返回SQLCODE -818 错误
      • 提高DB2数据库IMPORT命令性能的三种方式
      • DB2 rollforward 命令使用详解
      • 使用IBM OmniFind Enterprise Edition结合分类词典文件实现基于搜索结果分类
      • IBM Workplace Web Content Management和DB2 Content Manager
      • DB2 最佳实践: 部署 IBM DB2 产品,第 1 部分:部署规划、安装方法及响应文件创建
      • DB2:信息管理 尽在掌握
      • 高性能数据挖掘:在 InfoSphere Balanced Warehouse 中使用 SAS PMML 模型的并行计分性能

    关于我们 - 联系我们 - 免责声明 - 网站地图

    ©2020-2025 All Rights Reserved. linkedu.com 版权所有