DB2編程序技巧 (三)
更新時(shí)間:2007年03月06日 00:00:00 作者:
正在看的db2教程是:DB2編程序技巧 (三)。 另一種為
pcursor1: for loopcs1 as cousor1 cursor as
select market_code as market_code
from tb_market_code
for update
do
end for;
這種方式的優(yōu)點(diǎn)是比較簡(jiǎn)單,不用(也不允許)使用open,fetch,close。
但不能使用with hold 選項(xiàng)。如果在游標(biāo)循環(huán)內(nèi)要使用commit,rollback則不能使用這種方式。如果沒(méi)有commit或rollback的要求,推薦使用這種方式(看來(lái)For這種方式有問(wèn)題)。
修改游標(biāo)的當(dāng)前記錄的方法
update tb_market_code set market_code='0' where current of cursor1;
不過(guò)要注意將cursor1定義為可修改的游標(biāo)
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的轉(zhuǎn)碼操作
oracle中有一個(gè)函數(shù) select decode(a1,'1','n1','2','n2','n3') aa1 from
db2沒(méi)有該函數(shù),但可以用變通的方法
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計(jì)算兩個(gè)日期的相差天數(shù)
days(date(‘2001-06-05')) – days(date(‘2001-04-01'))
days 返回的是從 0001-01-01 開(kāi)始計(jì)算的天數(shù)
1.8 寫UDF的例子
C寫見(jiàn)sqllib\samples\cli\udfsrv.c
1.9 創(chuàng)建含identity值(即自動(dòng)生成的ID)的表
建這樣的表的寫法
CREATE TABLE test
(t1 SMALLINT NOT NULL
GENERATED ALWAYS AS IDENTITY
(START WITH 500, INCREMENT BY 1),
t2 CHAR(1));
在一個(gè)表中只允許有一個(gè)identity的column.
<
pcursor1: for loopcs1 as cousor1 cursor as
select market_code as market_code
from tb_market_code
for update
do
end for;
這種方式的優(yōu)點(diǎn)是比較簡(jiǎn)單,不用(也不允許)使用open,fetch,close。
但不能使用with hold 選項(xiàng)。如果在游標(biāo)循環(huán)內(nèi)要使用commit,rollback則不能使用這種方式。如果沒(méi)有commit或rollback的要求,推薦使用這種方式(看來(lái)For這種方式有問(wèn)題)。
修改游標(biāo)的當(dāng)前記錄的方法
update tb_market_code set market_code='0' where current of cursor1;
不過(guò)要注意將cursor1定義為可修改的游標(biāo)
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的轉(zhuǎn)碼操作
oracle中有一個(gè)函數(shù) select decode(a1,'1','n1','2','n2','n3') aa1 from
db2沒(méi)有該函數(shù),但可以用變通的方法
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計(jì)算兩個(gè)日期的相差天數(shù)
days(date(‘2001-06-05')) – days(date(‘2001-04-01'))
days 返回的是從 0001-01-01 開(kāi)始計(jì)算的天數(shù)
1.8 寫UDF的例子
C寫見(jiàn)sqllib\samples\cli\udfsrv.c
1.9 創(chuàng)建含identity值(即自動(dòng)生成的ID)的表
建這樣的表的寫法
CREATE TABLE test
(t1 SMALLINT NOT NULL
GENERATED ALWAYS AS IDENTITY
(START WITH 500, INCREMENT BY 1),
t2 CHAR(1));
在一個(gè)表中只允許有一個(gè)identity的column.
<
相關(guān)文章
使用SQL Server連接服務(wù)器訪問(wèn)DB2 Server
這篇文章主要介紹了使用SQL Server連接服務(wù)器訪問(wèn)DB2 Server,需要的朋友可以參考下2016-12-12
解決db2事務(wù)日志已滿及日志磁盤空間已滿問(wèn)題辦法詳解
本文主要講解了解決db2事務(wù)日志已滿及日志磁盤空間已滿的問(wèn)題,DB2總的可用活動(dòng)日志的最大空間是有限制的,當(dāng)達(dá)到限制之后,就會(huì)發(fā)生日志滿的問(wèn)題2018-03-03

