DB2存储过程开发最佳实践

豆豆网   技术应用频道   2007年09月04日  【字号: 收藏本文

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

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

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

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

  清单1:COALESCE 函数

                 .---------------.
      (1)         V        |
>>-COALESCE-------(--expression----,--expression-+--)----------><

  COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL。例如, COALESCE(piName,''),如果变量piName为NULL,那么函数会返回'',否则就会返回piName本身的值。

  下面的例子展示了如何对参数进行检查何初始化。

  Person表用来存储个人的基本信息,其定义如下:

  表1: Person

  DB2存储过程开发最佳实践

  下面是用于向表Person插入数据的存储过程的参数预处理部分代码:

  SET poGenStatus = 0;       
                   
  SET piName  = RTRIM(COALESCE(piName, ''));
  SET piRank = COALESCE(piRank, 0);
                     
  -- make sure all required input parameters are not null
  IF ( piNum IS NULL       
     OR piName = ''   
     OR piAge IS NULL ) 
  THEN               
    SET poGenStatus = 34100;   
    RETURN poGenStatus;     
  END IF;    

来源:ibm    作者:常伟    责编:豆豆技术应用

正在加载评论...