DB2编程序技巧(三)
DB2 技巧 编程序
2023-06-13 09:13:53 时间
正在看的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.
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.
相关文章
- oracle与mysql的区别面试题_oracle和db2的主要区别
- DB2 查询统计信息的命令详解数据库
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 JDBC访问DB2,参数正确,但是提示SQLCODE=-204, SQLSTATE=42704详解数据库
- JSP连接DB2数据库详解编程语言
- 行运行在Linux系统中使用DB2命令行操作(linux下db2命令)
- db2数据迁移到MySQL的实践经验(db2转mysql)
- 从Oracle到DB2:迁移数据库的经验(oracle转db2)
- Linux上如何安装DB2数据库?25字(linux下安装db2)
- Linux下连接DB2的技巧(Linux连接DB2)
- DB2与Oracle:二者的差异(db2和oracle区别)
- 比较DB2和MySQL:特点、优劣势及适用场景(db2与mysql的区别)
- 如何无痛将DB2数据库成功迁移到Oracle?(db2迁移到oracle)
- DB2附加Oracle权限的快速操作方法(db2附权oracle)
- DB2连接Oracle乱码解决方案(db2连oracle乱码)
- 数据库迁移从DB2到Oracle的实践(db2迁移至oracle)
- 让DB2支持Oracle设置实现与应用(db2设置oracle)
- DB2切换到Oracle一次实现升级复制(db2的复制oracle)
- DB2走上正轨使用Oracle实现稳定依赖(db2依赖oracle)
- 比较DB2与Oracle数据库的优劣势(db2 oracle优劣)
- DB2与Oracle服务器兼容分析(db2 oracle兼容)
- Oracle数据库比DB2强大多步(oracle优于db2)
- Redis精选DB2极大提升存储效率(redis 选择db2)
- DB2编程序技巧(七)
- DB2编程序技巧(一)
- db2数据库常用操作命令大全