游標迴圈處理資料

2022-07-04 01:06:10 字數 1643 閱讀 8736

在開發中,經常會遇到乙個場景。需要批量處理資料,迴圈新增、刪除、修改一些資料。

需求:

有 文章表(dbo.gas_article)、文章作者表(dbo.gas_articleauthor)

現在需要在後台統計出每個作者共發布了多少文章,和所有文章閱讀量之和的資料

以下是我的處理方案:

編寫procedure,內部利用游標迴圈處理資料,然後使用sqlserver**,新建乙個作業定時任務處理,這樣就可以在後台實時統計了。

1

create

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...