首 页 教育新闻课件中心论文中心教学教案试题中心语文专题综合下载技术教程公务员  
设为首页
加入收藏
联系我们
您当前的位置:中国教育资源网 -> 技术教程 -> 数据库综合 -> DB2 -> 技术内容 退出登录 用户管理

DB2编程序技巧 (四)DB2教程

论文作者:佚名  论文来源:不详  论文发布时间:2006-6-17 15:58:17  论文发布人:chjchjchj

减小字体 增大字体

1.10 预防字段空值的处理
SELECT DEPTNO ,DEPTNAME ,COALESCE(MGRNO ,'ABSENT'),ADMRDEPT
FROM DEPARTMENT
   COALESCE函数返回()中表达式列表中第一个不为空的表达式,可以带多个表达式。
   和oracle的isnull类似,但isnull好象只能两个表达式。
     

1.11 取得处理的记录数
declare v_count int;
update tb_test set t1=’0’
where t2=’2’;
--检查修改的行数,判断指定的记录是否存在
get diagnostics v_ count=ROW_COUNT;     
只对update,insert,delete起作用.
不对select into 有效


1.12 从存储过程返回结果集(游标)的用法
1、建一sp返回结果集
CREATE PROCEDURE DB2INST1.Proc1 (  )
    LANGUAGE SQL
    result sets 2(返回两个结果集)
------------------------------------------------------------------------
-- SQL 存储过程 
------------------------------------------------------------------------
P1: BEGIN
        declare c1 cursor  with return to caller for 
            select  market_code
            from    tb_market_code;
        --指定该结果集用于返回给调用者
        declare c2 cursor  with return to caller for 
            select  market_code
            from    tb_market_code;
         open c1;
         open c2;
END P1                                       


2、建一SP调该sp且使用它的结果集

CREATE PROCEDURE DB2INST1.Proc2 (
out out_market_code char(1))
    LANGUAGE SQL
------------------------------------------------------------------------
-- SQL 存储过程 
------------------------------------------------------------------------
P1: BEGIN

 declare loc1,loc2 result_set_locator varying; 
--建立一个结果集数组
call proc1;
--调用该SP返回结果集。
associate result set locator(loc1,loc2) with procedure proc1;
--将返回结果集和结果集数组关联
 allocate cursor1 cursor for result set loc1;
 allocate cursor2 cursor for result set loc2;
--将结果集数组分配给cursor
fetch  cursor1 into out_market_code;
--直接从结果集中赋值
close cursor1;         

END P1

3、动态SQL写法
     DECLARE CURSOR C1 FOR STMT1; 
     PREPARE STMT1 FROM
        'ALLOCATE C2 CURSOR FOR RESULT SET ?';
4、注意:
一、 如果一个sp调用好几次,只能取到最近一次调用的结果集。
二、 allocate的cursor不能再次open,但可以close,是close sp中的对应cursor。

1.13 类型转换函数
select cast ( current time as char(8)) from tb_market_code

1.14 存储过程的互相调用
目前,c sp可以互相调用。
Sql sp 可以互相调用,
Sql sp 可以调用C sp,
但C sp 不可以调用Sql sp(最新的说法是可以)

1.15 C存储过程参数注意
create procedure pr_clear_task_ctrl(
IN IN_BRANCH_CODE char(4),
              IN IN_TRADEDATE   char(8),
           IN IN_TASK_ID     char(2),
       IN IN_SUB_TASK_ID char(4),
       OUT OUT_SUCCESS_FLAG INTEGER )
 
DYNAMIC RESULT SETS 0
LANGUAGE C 
PARAMETER STYLE GENERAL WITH NULLS(如果不是这样,sql 的sp将不能调用该用c写的存储过程,产生保护性错误)
NO DBINFO
FENCED
MODIFIES SQL DATA
EXTERNAL NAME 'pr_clear_task_ctrl!pr_clear_task_ctrl'@



[] [返回上一页] [打 印] [收 藏]  
 ∷相关技术评论  (评论内容只代表网友观点,与本站立场无关!) [查看发表评论...]
 
 中国教育资源网免费技术教程下载中心-站内广告 站内广告 中国教育资源网免费技术教程下载中心-站内广告 
 中国教育资源网站内搜索 站内搜索 中国教育资源网站内搜索 
 

   
 中国教育资源网免费技术教程下载中心-栏目导航 栏目导航 中国教育资源网免费技术教程下载中心-栏目导航 
· Access · Mysql
· SQL server · ORACLE
· DB2 · VFP
· PowerBuilder
 
中国教育资源网免费技术教程下载中心-相关教程  相关技术 中国教育资源网免费技术教程下载中心-相关教程
· [组图] 时光回溯 四招恢复损
· 无处不在 四个软键
· Win2003中特别工具
· 要用最新驱动 四步就
· 黑客入侵攻击方式的
· DB2编程序技巧 (五)
· DB2编程序技巧 (六)
· DB2编程序技巧 (七)
· DB2编程序技巧 (八)
· DB2编程序技巧 (九)
 中国教育资源网免费技术教程下载中心-本月热门教程 本月热门 中国教育资源网免费技术教程下载中心-本月热门教程 
 
 中国教育资源网免费技术教程下载中心-本日热门论文 本日热门 中国教育资源网免费技术教程下载中心-本日热门论文 
 
关于本站 - 网站帮助 - 免费课件 - 美容 - 绿色软件 - 软件下载 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站留言
浙ICP备06010405号 Email:cnkjz@163.com 技术支持:名流设计
版权所有 Copyright© 2002-2004 名流