DB2编程技巧(1)

您正在研究的DB2课程是:DB2编程技巧(1)。

1 DB2编程


1.1在构建存储过程时,在tab键之后不能使用创建。


创建程序


创建后只能使用空格,而不是制表符健康,否则编译将通过。


记住,记住。


1.2使用临时表


注意:临时表只能建立在用户临时表空间,如果数据库系统临时表空间不是建立临时表。


此外,DB2的临时表不为Sybase和Oracle临时表一样,和DB2的临时表是有效的在一个会话中,如果程序有多个线程,最好不要使用临时表,所以很难控制。


在构建临时表时,最好添加替换选项,以便不能显示删除临时表。当构建临时表时,如果不添加选项,则会在会话中创建临时表,如果没有发现滴,则会出现错误。


1.3从数据表中取出最初的几条记录。


SELECT * FROM tb_market_code取前1行只


但以下方法是不允许的


选择market_code为v_market_code


从tb_market_code取前1行只;





按照以下方式选择第一个记录的字段到一个变量


声明v_market_code char(1);


声明游标光标选择market_code从tb_market_code


获取前1行仅用于更新;


打开游标;


把游标到v_market_code;


关闭游标;


1.4游标的使用


注意提交和回滚


如果没有添加带保留选项,使用游标时要特别注意,游标在提交和回滚时会关闭。提交和回滚有很多需要注意的地方。


游标的两种定义


一种


声明未找到的继续处理程序


开始


集v_notfound = 1;


结束;


声明游标保持游标选择market_code从tb_market_code更新;


打开游标;


集v_notfound = 0;


把游标到v_market_code;


而v_notfound = 0


--工作


集v_notfound = 0;


把游标到v_market_code;


结束的时候;


关闭游标;


这种方法的使用更为复杂,但也很灵活,特别是,可以使用带保留选项。如果循环提交或回滚以保持游标不关闭,则只能使用这种方式。


另一个是


pcursor1:为loopcs1作为cousor1光标


选择market_code作为market_code


从tb_market_code


更新





结束;


这种方法的优点是简单,不(不允许)使用打开、获取、关闭。


但不能使用带保留选项。如果在游标循环中使用了提交,那么回滚不能使用这种方式。如果没有提交或回滚要求,建议使用这种方法(似乎有问题)。


修改光标当前记录的一种方法。


更新tb_market_code集# market_code = 146;0 # 146;在当前游标;


但要注意定义游标作为修改光标


声明游标光标选择market_code从tb_market_code


更新;


对于更新不能与组一起使用,不同,按顺序,用于只读和联合,除。


1.5类似解码的转码操作


在Oracle中,有一个功能选择解码(A1,# 146;1 # 146;# 146;N1 # # 146;146;2 # 146;# 146;N2 # 146;)


DB2没有这个函数,但是可以以变量方式使用它。


选择案例A1


当# 146;1 # 146;然后# 146;N1 # 146;


当# 146;2 # 146;然后# 146;N2 # 146;


其他# 146;N3 # 146;


最后从Aa1


1.6类似于字符串中查找字符位置charindex


定位(Y,'dfdasfay)


找到the'y'in the'dfdasfay位置。


1.7类似的datedif两差异日期天数计算


天(日期('2001-06-05 '))-天