手机
当前位置:查字典教程网 >编程开发 >DB2数据库 >DB2编程序技巧 (三)
DB2编程序技巧 (三)
摘要:正在看的db2教程是:DB2编程序技巧(三)。另一种为pcursor1:forloopcs1ascousor1cursorasselectm...

正在看的db2教程是:DB2编程序技巧 (三)。另一种为

pcursor1:forloopcs1ascousor1cursoras

selectmarket_codeasmarket_code

fromtb_market_code

forupdate

do

endfor;

这种方式的优点是比较简单,不用(也不允许)使用open,fetch,close。

但不能使用withhold选项。如果在游标循环内要使用commit,rollback则不能使用这种方式。如果没有commit或rollback的要求,推荐使用这种方式(看来For这种方式有问题)。

修改游标的当前记录的方法

updatetb_market_codesetmarket_code='0'wherecurrentofcursor1;

不过要注意将cursor1定义为可修改的游标

declarecursor1cursorforselectmarket_codefromtb_market_code

forupdate;

forupdate不能和GROUPBY、DISTINCT、ORDERBY、FORREADONLY及UNION,EXCEPT,orINTERSECT但UNIONALL除外)一起使用。

1.5 类似decode的转码操作

oracle中有一个函数 selectdecode(a1,'1','n1','2','n2','n3')aa1from

db2没有该函数,但可以用变通的方法

selectcasea1

when'1'then'n1'

when'2'then'n2'

else'n3'

endasaa1from

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写见sqllibsamplescliudfsrv.c

1.9 创建含identity值(即自动生成的ID)的表

建这样的表的写法

CREATETABLEtest

(t1SMALLINTNOTNULL

GENERATEDALWAYSASIDENTITY

(STARTWITH500,INCREMENTBY1),

t2CHAR(1));

在一个表中只允许有一个identity的column.

【DB2编程序技巧 (三)】相关文章:

IBM DB2 日常维护汇总(六)

IBM DB2 基本性能调整

DB2编程序技巧(1)

DB2 UDB V8.1管理学习笔记(三)

DB2编程序技巧 (七)

IBM DB2 日常维护汇总(三)

DB2数据库的安装

IBM DB2 日常维护汇总(一)

DB2编程序技巧 (九)

IBM DB2 日常维护汇总(九)

精品推荐
分类导航