正在看的db2教程是:DB2编程序小小技巧。
一些编程经验,与大家共享!
1 DB2编程
1.1 建存储过程时CREATE 后一定不要用TAB键 3
1.2 使用临时表 3
1.3 从数据表中取指定前几条记录 3
1.4 游标的使用 4
注意commit和rollback 4
游标的两种定义方式 4
修改游标的当前记录的方法 5
1.5 类似DECODE的转码操作 5
1.6 类似CHARINDEX查找字符在字串中的位置 5
1.7 类似DATEDIF计算两个日期的相差天数 5
1.8 写UDF的例子 5
1.9 创建含IDENTITY值(即自动生成的ID)的表 6
1.10 预防字段空值的处理 6
1.11 取得处理的记录数 6
1.12 从存储过程返回结果集(游标)的用法 6
1.13 类型转换函数 8
1.14 存储过程的互相调用 8
1.15 C存储过程参数注意 8
1.16 存储过程FENCE及UNFENCE 8
1.17 SP错误处理用法 9
1.18 IMPORT用法 9
1.19 VALUES的使用 9
1.20 给SELECT 语句指定隔离级别 10
1.21 ATOMIC及NOT ATOMIC区别 10
2 DB2编程性能注意 10
2.1 大数据的导表 10
2.2 SQL语句尽量写复杂SQL 10
2.3 SQL SP及C SP的选择 10
2.4 查询的优化(HASH及RR_TO_RS) 11
2.5 避免使用COUNT(*) 及EXISTS的方法 11
3 DB2表及SP管理 12
3.1 看存储过程文本 12
3.2 看表结构 12
3.3 查看各表对SP的影响(被哪些SP使用) 12
3.4 查看SP使用了哪些表 12
3.5 查看FUNCTION被哪些SP使用 12
3.6 修改表结构 12
4 DB2系统管理 13
4.1 DB2安装 13
4.2 创建DATABASE 14
4.3 手工做数据库远程(别名)配置 14
4.4 停止启动数据库实例 14
4.5 连接数据库及看当前连接数据库 14
4.6 停止启动数据库HEAD 15
4.7 查看及停止数据库当前的应用程序 15
4.8 查看本INSTANCE下有哪些DATABASE 15
4.9 查看及更改数据库HEAD的配置 16
4.9.1 改排序堆的大小 16
4.9.2 改事物日志的大小 16
4.9.3 出现程序堆内存不足时修改程序堆内存大小 16
4.10 查看及更改数据库实例的配置 16
4.10.1 打开对锁定情况的监控。 16
4.10.2 更改诊断错误捕捉级别 17
4.11 DB2环境变量 17
4.12 DB2命令环境设置 17
4.13 改变隔离级别 17
4.14 管理DB\INSTANCE的参数 18
4.15 升级后消除版本问题 18
4.16 查看数据库表的死锁 18
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不被关闭,只能使用这种方式。
&n
一些编程经验,与大家共享!
1 DB2编程
1.1 建存储过程时CREATE 后一定不要用TAB键 3
1.2 使用临时表 3
1.3 从数据表中取指定前几条记录 3
1.4 游标的使用 4
注意commit和rollback 4
游标的两种定义方式 4
修改游标的当前记录的方法 5
1.5 类似DECODE的转码操作 5
1.6 类似CHARINDEX查找字符在字串中的位置 5
1.7 类似DATEDIF计算两个日期的相差天数 5
1.8 写UDF的例子 5
1.9 创建含IDENTITY值(即自动生成的ID)的表 6
1.10 预防字段空值的处理 6
1.11 取得处理的记录数 6
1.12 从存储过程返回结果集(游标)的用法 6
1.13 类型转换函数 8
1.14 存储过程的互相调用 8
1.15 C存储过程参数注意 8
1.16 存储过程FENCE及UNFENCE 8
1.17 SP错误处理用法 9
1.18 IMPORT用法 9
1.19 VALUES的使用 9
1.20 给SELECT 语句指定隔离级别 10
1.21 ATOMIC及NOT ATOMIC区别 10
2 DB2编程性能注意 10
2.1 大数据的导表 10
2.2 SQL语句尽量写复杂SQL 10
2.3 SQL SP及C SP的选择 10
2.4 查询的优化(HASH及RR_TO_RS) 11
2.5 避免使用COUNT(*) 及EXISTS的方法 11
3 DB2表及SP管理 12
3.1 看存储过程文本 12
3.2 看表结构 12
3.3 查看各表对SP的影响(被哪些SP使用) 12
3.4 查看SP使用了哪些表 12
3.5 查看FUNCTION被哪些SP使用 12
3.6 修改表结构 12
4 DB2系统管理 13
4.1 DB2安装 13
4.2 创建DATABASE 14
4.3 手工做数据库远程(别名)配置 14
4.4 停止启动数据库实例 14
4.5 连接数据库及看当前连接数据库 14
4.6 停止启动数据库HEAD 15
4.7 查看及停止数据库当前的应用程序 15
4.8 查看本INSTANCE下有哪些DATABASE 15
4.9 查看及更改数据库HEAD的配置 16
4.9.1 改排序堆的大小 16
4.9.2 改事物日志的大小 16
4.9.3 出现程序堆内存不足时修改程序堆内存大小 16
4.10 查看及更改数据库实例的配置 16
4.10.1 打开对锁定情况的监控。 16
4.10.2 更改诊断错误捕捉级别 17
4.11 DB2环境变量 17
4.12 DB2命令环境设置 17
4.13 改变隔离级别 17
4.14 管理DB\INSTANCE的参数 18
4.15 升级后消除版本问题 18
4.16 查看数据库表的死锁 18
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不被关闭,只能使用这种方式。
&n
[1] [2] [3] [4] [5] [6] 下一篇
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月23日
2024年11月23日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]