当前位置: 首页 > 图文教程 > 数据库 > DB2 > DB2编程序技巧 (二)

DB2
DB2常用傻瓜问题1000问(四)
DB2常用傻瓜问题1000问(三)
DB2常用傻瓜问题1000问(二)
JSP如何连接DB2数据库
常见数据库系统比较 DB2数据库
DB2数据库的备份和恢复
DB2个人版(Linux)安装
IBM DB2 基本性能调整
DB2 UDB V8.1管理学习笔记(三)
DB2 UDB V8.1管理学习笔记(一)
DB2数据同步方面的经验
DB2编程序技巧 (十)
DB2编程序技巧 (九)
DB2编程序技巧 (八)
DB2编程序技巧 (七)
DB2编程序技巧 (六)
DB2编程序技巧 (五)
DB2编程序技巧 (三)
DB2编程序技巧 (一)
IBM DB2 日常维护汇总(九)

DB2编程序技巧 (二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 28 ::
收藏到网摘: n/a

1 DB2编程
1.1 建存储过程时Create 后一定不要用TAB键
create procedure
的create后只能用空格,而不可用tab健,否则编译会通不过。
切记,切记。

1.2 使用临时表

  要注意,临时表只能建在user tempory tables space 上,如果database只有system tempory table space是不能建临时表的。
  另外,DB2的临时表和sybase及oracle的临时表不太一样,DB2的临时表是在一个session内有效的。所以,如果程序有多线程,最好不要用临时表,很难控制。
   建临时表时最好加上  with  replace选项,这样就可以不显示的drop 临时表,建临时表时如果不加该选项而该临时表在该session内已创建且没有drop,这时会发生错误。
1.3 从数据表中取指定前几条记录
select  *  from tb_market_code fetch first 1 rows only

但下面这种方式不允许
select market_code into v_market_code 
        from tb_market_code fetch first 1 rows only;     
    
选第一条记录的字段到一个变量以以下方式代替
    declare v_market_code char(1);
    declare cursor1 cursor for select market_code from tb_market_code 
fetch first 1 rows only for update;
    open cursor1;
    fetch cursor1 into v_market_code;
    close cursor1;

1.4 游标的使用
注意commit和rollback
使用游标时要特别注意如果没有加with hold 选项,在Commit和Rollback时,该游标将被关闭。Commit 和Rollback有很多东西要注意。特别小心

游标的两种定义方式
一种为
declare continue handler for not found
   begin
     set v_notfound = 1;
   end;

declare cursor1 cursor with hold for select market_code from tb_market_code  for update;
open cursor1;
set v_notfound=0;
fetch cursor1 into v_market_code;
while v_notfound=0 Do
--work
set v_notfound=0;
fetch cursor1 into v_market_code;
end while;
close cursor1;
这种方式使用起来比较复杂,但也比较灵活。特别是可以使用with hold 选项。如果循环内有commit或rollback 而要保持该cursor不被关闭,只能使用这种方式。