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 '))-天