DB2编程序技巧 (三)

所属分类: 数据库 / DB2 阅读数: 187
收藏 0 赞 0 分享
正在看的db2教程是:DB2编程序技巧 (三)。  另一种为
      pcursor1: for loopcs1 as  cousor1  cursor  as
select  market_code  as market_code
           from tb_market_code
           for update
        do
        end for;
       这种方式的优点是比较简单,不用(也不允许)使用open,fetch,close。
  但不能使用with  hold 选项。如果在游标循环内要使用commit,rollback则不能使用这种方式。如果没有commit或rollback的要求,推荐使用这种方式(看来For这种方式有问题)。

修改游标的当前记录的方法
update tb_market_code set market_code='0' where current of cursor1;
不过要注意将cursor1定义为可修改的游标
  declare cursor1 cursor for select market_code from tb_market_code 
for update;

for update 不能和GROUP BY、 DISTINCT、 ORDER BY、 FOR READ ONLY及UNION, EXCEPT, or INTERSECT但 UNION ALL除外)一起使用。



1.5 类似decode的转码操作
oracle中有一个函数  select decode(a1,'1','n1','2','n2','n3') aa1 from
db2没有该函数,但可以用变通的方法
select case a1 
when '1' then 'n1' 
when '2' then 'n2' 
else 'n3'
    end as aa1 from

1.6 类似charindex查找字符在字串中的位置
Locate(‘y','dfdasfay')
查找'y' 在'dfdasfay'中的位置。

1.7 类似datedif计算两个日期的相差天数
days(date(‘2001-06-05')) – days(date(‘2001-04-01'))
days 返回的是从  0001-01-01 开始计算的天数
1.8 写UDF的例子
C写见sqllib\samples\cli\udfsrv.c

1.9 创建含identity值(即自动生成的ID)的表
建这样的表的写法
CREATE TABLE test
     (t1 SMALLINT NOT NULL
        GENERATED ALWAYS AS IDENTITY
        (START WITH 500, INCREMENT BY 1),
      t2 CHAR(1));
在一个表中只允许有一个identity的column.


<

更多精彩内容其他人还在看

DB2中的数据移动(一)

DB2中的数据移动(一)
收藏 0 赞 0 分享

DB2大事记

DB2大事记
收藏 0 赞 0 分享

DB2编程序技巧(1)

DB2编程序技巧(1)
收藏 0 赞 0 分享

创建一个空的IBM DB2 ECO数据库的方法

创建一个空的IBM DB2 ECO数据库的方法
收藏 0 赞 0 分享

DB2 日期和时间的函数应用说明

DB2中有关日期和时间的函数,及应用,比较老的文章了,需要的朋友可以参考下。
收藏 0 赞 0 分享

DB2 常用命令速查(备忘)

DB2 常用命令速查,需要的朋友可以参考下。
收藏 0 赞 0 分享

DB2 常用命令小结

DB2 常用命令,对于使用db2的朋友可以参考下。
收藏 0 赞 0 分享

DB2 自动递增字段实现方法

DB2提供了当有一行插入的时候自动在某一列添加值的功能,可以使用所谓identity rules,简单点的比如某个数值的递增填入该列中,当然也有很复杂的。
收藏 0 赞 0 分享

DB2比较常用与实用sql语句总结

DB2比较常用与实用sql语句总结,学习与使用db2朋友可以参考下。
收藏 0 赞 0 分享

DB2 SELECT语句高级用法

DB2 SELECT语句高级用法,学习db2的朋友可以参考下。
收藏 0 赞 0 分享
查看更多