zoukankan      html  css  js  c++  java
  • 存储过程语法

    DB2中存储过程包括存储过程头和存储过程体

    存储过程头
    create procedure sum(in  p_a integer,
                         in  p_b integer,
                         out p_s integer)
         language sql
         specific sum_ab
    begin
         set p_s = p_a + p_b;
    end

    a、名称:模式加名称,如:db2admin.reademp
    b、参数:1 模式:in/out/inout
                      2 名称:建议以P_开头
                      3 数据类型
    c、调用存储过程,如:call sun(100,200,?)
    d、删除存储过程 drop procedure sum(integer,integer,integer)
    e、dynamic result sets指定了返回的最大结果集数目(后面跟数字)
    f、contains sql (不含查询和更新语句)  
       reads sql data:只含查询语句
       modifies sql data:含查询和更新,限制最少
       精确定义以上3项,可提高存储过程执行性能
    g、deterministic:对于相同的输入参数,每次返回的结果都是相同的,结果集   放在内存中可以重用,因此可以提高运行性能;
       not deterministic:缺省,不推荐
    h、language sql/c/java 分别对应相应语言存储过程
    i、called on null input:当输入参数为空值,过程依旧执行,缺省值
    j、P昂然meter CCSID:Coded Character Set ID,定义了当字符类的数据传入   和过程中输出的编码模式

    存储过程体:
    1、declare 变量名 数据类型
    2、流程控制
    - CASE   根据对一个或多个条件的计算选择执行路径
    - FOR    对于表中的每一行执行一个代码块
    - GET DIAGNOSTICS 将关于前一个SQL语句的信息返回到一个SQL变量中
    - GOTO   控制转移到一个有标签的块(一个或者多个语句的块,由一个唯一的  SQL名称和冒号标识)
    - IF     语句(ELSEIF、ELSE)
    - ITERATE将流程控制传递到一个有标签的循环的开头
    - LEAVE  使程序控制离开一个循环代码块
    - LOOP   多次执行一个代码块,直到LEAVE,ITERATE或者GOTO语句控制离开
    - REPEAT 重复执行一个代码块,直到指定的搜索条件返回真为止
    - RETURN 控制从SQL过程返回给调用者
    - SET    将一个值赋值给一个输出变量或者SQL变量
    - WHILE  在指定条件为真时重复执行一个代码块

    创建:db2 -td@ -vf createSQLproc.db2
    调用:db2 call 过程名(参数)
          ...
          end@ (此处的@可替换成其他符号)

  • 相关阅读:
    Linux下安装python
    oracle 12c使用问题总结
    oracle下载地址
    Informatica PowerCenter下载地址
    主流ETL工具
    【phonegap】下载文件
    eclipse显示包的层次关系
    UltraISO 9.6.5.3237
    Windows操作系统设置代理
    wireshark常用的过滤命令
  • 原文地址:https://www.cnblogs.com/xiaojianblogs/p/6124065.html
Copyright © 2011-2022 走看看