PL/SQL游标
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
創(chuàng)建游標(biāo)
????顯示游標(biāo)必須聲明,并且在使用前要打開,使用完畢要關(guān)閉。隱式游標(biāo),無需執(zhí)行上述步驟。
????與循環(huán)結(jié)構(gòu)結(jié)合的顯式游標(biāo)處理返回多于一行的Select語句,與循環(huán)結(jié)合的游標(biāo)將允許每次處理一行。當(dāng)Select語句預(yù)計(jì)只返回一行時(shí),隱式游標(biāo)將更合適。
????顯式游標(biāo)是作為declare段中的一部分進(jìn)行定義的,所定義的SQL語句必須只包含select語句,并且不能用insert,update或delete關(guān)鍵字。當(dāng)select語句可能返回零或多于一行時(shí),就必須用顯式游標(biāo)。
使用顯式游標(biāo)時(shí),必須編寫4部分代碼:
????在PL/SQL塊的declare段中定義游標(biāo);
????在PL/SQL塊中初始begin后打開游標(biāo);
????取游標(biāo)到一個(gè)或多個(gè)變量中,在接收游標(biāo)的fetch語句中,接收變量的數(shù)目必須與游標(biāo)的select列表中的表列數(shù)目一致;
????使用完游標(biāo)后要關(guān)閉。
示例
關(guān)于顯式游標(biāo)要注意以下幾點(diǎn)。
????用“%found”和"%notfound"檢驗(yàn)游標(biāo)成功與否。如果游標(biāo)按照其選擇條件從數(shù)據(jù)庫中查詢出一行數(shù)據(jù),則返回成功。該測(cè)試必須在游標(biāo)關(guān)閉前執(zhí)行。
????循環(huán)執(zhí)行游標(biāo)去數(shù)操作時(shí),檢索出的總數(shù)據(jù)數(shù)存放在系統(tǒng)變量"%rowcount"中。
????所有游標(biāo)必須被取至一個(gè)或多個(gè)變量(取決于游標(biāo)Select列表中的列數(shù))。
????游標(biāo)的目標(biāo)變量必須與游標(biāo)Select表中表列的數(shù)據(jù)類型一致。
????如果試圖打開一個(gè)已打開的游標(biāo)或關(guān)閉一個(gè)已關(guān)閉游標(biāo),將會(huì)出現(xiàn)錯(cuò)誤。因此,用戶在打開或關(guān)閉游標(biāo)前,若不清楚其狀態(tài),應(yīng)該用"%isopen"進(jìn)行檢查。
????如果一個(gè)PL/SQL塊中用了多個(gè)游標(biāo),那么每個(gè)游標(biāo)的名字必須唯一。
轉(zhuǎn)載于:https://my.oschina.net/yaoliyc/blog/261552
總結(jié)
- 上一篇: Openstack部署工具
- 下一篇: rsyncd.conf 详细配置