多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 數(shù)據(jù)庫 > 數(shù)據(jù)庫應用 > [置頂] Oracle游標―for、loop、if結(jié)合應用

[置頂] Oracle游標―for、loop、if結(jié)合應用

來源:程序員人生   發(fā)布時間:2015-05-04 10:21:55 閱讀次數(shù):4461次


1、需求


甚么時候會用到Oracle游標,和其中的for、loop、if呢?

先看這樣1個需求:

有1張學生授課表T_TEACHING,每一個學生都有數(shù)門課程:

主鍵ID(自增)
課程號COURSE_ID
學號USER_ID
1
01
201501
2
02
201501
3
03
201501
4
01
201502
5
01
201503
6
01
201504
7
02
201504
...
...
...

但是由于某些緣由,致使有的學生課程不全(本應當每一個學生都有3門課),應當如何把不全的學生檢索出來,再給這些學生添加課程呢,并且要求能夠快速解決這個問題。


2、分析


我們對需求進行1步步梳理:

1、我們不知道哪一個學生課程不全,所以需要循環(huán)判斷每一個學生

通經(jīng)常使用for循環(huán):for USER_ID in USER_IDS

2、循環(huán)判斷每一個學生就要拿到所有的學號

select:select USER_ID from  T_TEACHING GROUP BY USER_ID;

3、有了學號,判斷這個學生是不是缺少課程,然后添加這門課

(1)select:select count(*) from T_TEACHING where USER_ID=@USER_ID and COURSE_ID=@COURSE_ID;

(2)if else 判斷

(3)insert:insert into T_TEACHING(COURSE_ID,USER_ID) values (@COURSE_ID,@USER_ID)

通過分析大致的流程出來了,然后再看細節(jié):

我們通過select ..GROUP BY獲得了授課表中所有的學號,然后就對這些學號進行循環(huán)獲得,關(guān)鍵在于select ..GROUP BY出來如何循環(huán)獲得。


3、方法


在oracle中提供了“游標”

  游標是甚么,游標用來處理從數(shù)據(jù)庫中檢索的多行記錄(使用SELECT語句)。利用游標,程序可以逐一地處理和遍歷1次檢索返回的全部記錄集。

這正是我們想要的!!

結(jié)合for循環(huán),我們可使用for循環(huán)游標,格式以下:

--(1)定義游標 --關(guān)鍵字cursor cursor x is select語句  --(2)定義游標變量   y x%rowtype --(3)使用for循環(huán)來使用這個游標 for y in x loop --邏輯處理 end loop;

下面我們通過sql存儲進程來完全的實現(xiàn)上面的需求

declare --定義類型  cursor t_tea is select USER_ID from T_TEACHING GROUP BY USER_ID; --定義1個游標變量  t_row t_tea%rowtype; --定義1個number類型的臨時變量     v_count number; begin for t_row in t_tea loop     select count(*) into v_count from T_TEACHING where USER_ID=t_row.USER_ID and COURSE_ID=02;      if v_count = 0 then        insert into T_TEACHING(COURSE_ID,USER_ID) values (02,t_row.USER_ID);      end if;        end loop; end;



4、總結(jié)

  

  oracle中的游標循環(huán)不只有for循環(huán),oracle中提供了兩種游標,顯示游標和隱式游標,其他游標的使用方式可以在這里了解,用到了在深入研究:http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html




生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲久久草| 欧美性bbwbbwbbwbbwbbw | 性一交一乱一伦一色一情 | 三级在线观看视频 | 免费福利网站在线观看 | 国产综合精品久久亚洲 | 性xxxx欧美| 日韩久久一区二区三区 | 精品视频一区二区三区四区五区 | 日本一区二区三区在线观看视频 | 中文字幕22页 | 国产综合久久 | 一级片欧美 | 欧美色图 亚洲 | 变态 另类 国产 亚洲 | 欧美色图偷窥自拍 | 五月激情婷婷综合 | 亚洲精品久久久久久久久久久网站 | 中文字幕视频在线观看 | 亚洲永久精品免费www52zcm男男 | 91在线一区二区三区 | 亚洲系列_1页_mmyy11 | 99热精品成人免费观看 | 欧美日韩亚洲综合另类ac | 国产在线观看精品一区二区三区91 | 无国产精品白浆免费视 | 欧美精品videosex极品 | 宇都宫紫苑在线播放ed2k | 美国一级毛片片aa成人 | 日韩在线小视频 | 一区二区高清视频 | 级毛片 | 特别毛片 | 欧美亚洲国产精品 | 欧美另类图片小说 | 中文字幕视频一区二区 | 亚洲国产精品一区二区三区久久 | 免费高清毛片在线播放视频 | 国产精品亚洲欧美日韩久久 | 精品国产综合成人亚洲区 | 日韩 欧美 亚洲国产 |