在開發中,經常會遇到乙個場景。需要批量處理資料,迴圈新增、刪除、修改一些資料。
需求:
有 文章表(dbo.gas_article)、文章作者表(dbo.gas_articleauthor)
現在需要在後台統計出每個作者共發布了多少文章,和所有文章閱讀量之和的資料
以下是我的處理方案:
編寫procedure,內部利用游標迴圈處理資料,然後使用sqlserver**,新建乙個作業定時任務處理,這樣就可以在後台實時統計了。
1create
procedure job_updateauthor --
建立procedure2as
3begin
4declare updateauthorcursor cursor
--定義游標
5for
6select
count(*) as
articlenumber ,
7sum(showhits) as
articlehits ,
8author
9from
dbo.gas_article
10where author in ( select
name
11from
dbo.gas_articleauthor
12where isdelete =0)
13group
by author --
查出需要的資料至游標中
1415
open updateauthorcursor --
開啟游標
1617
declare
@number
int, @hits
int, @author
nvarchar(255)18
fetch
next
from updateauthorcursor into
@number, @hits, @author
--讀取第一行資料,賦值給變數
1920
while
@@fetch_status=0
21begin
22update
dbo.gas_articleauthor
23set articlenumber =
@number
,24 articlehits =
@hits
25where name =
@author
--更新dbo.gas_articleauthor資料
2627
fetch
next
from updateauthorcursor into
@number, @hits, @author
--讀取下一行資料
28end
2930
close updateauthorcursor --
關閉游標
3132
deallocate updateauthorcursor --
釋放游標
33end
34go
Oracle 游標迴圈插入資料
遇到乙個需求統計歷史每個月底的資料插入到表中,查詢了資料發現使用游標會很方便,記錄一下解決思路 先查出每個月月底的日期作為條件 select to char lastday,yyyy mm dd lastday from select last day add months to date 2014...
使用游標 游標FOR迴圈
游標for迴圈是在pl sql塊中使用游標最簡單的方式,它簡化了對游標的處理。當使用游標for迴圈時,oracle會隱含的開啟游標,提取游標資料並關閉游標。例子 顯示emp表所有雇員名及其工資 declare cursor emp cursor isselect ename,sal from emp...
mysql游標遍歷迴圈 插入資料
begin declare no more record int default 0 declare insertcolumn varchar 18 declare cur record cursor for select insertparam from testtable declare con...