新聞中心
我們今天要向大家介紹的是Oracle 10g中用FIRALL來處理某些非連續(xù)數(shù)組,在PL/SQL循環(huán)中來執(zhí)行相關(guān)數(shù)據(jù)的操作語言(DML)其實是一件很費時的工作,因為每次循環(huán)都要由PL/SQL引擎轉(zhuǎn)向SQL引擎。應(yīng)用FORALL是一個更好的方法,它一次性向SQL語句提交一組臨時值。

創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站設(shè)計服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站設(shè)計及推廣,對塔吊租賃等多個領(lǐng)域擁有多年的網(wǎng)站設(shè)計經(jīng)驗的網(wǎng)站建設(shè)公司。
在Oracle 10g前,F(xiàn)ORALL語句的語法只能處理連續(xù)性的數(shù)組元素:
- FORALL index_name IN lower_bound ..upper_bound sql_statement;
這意味著:在以前,使用FORALL的嵌套表不能刪除待處理數(shù)組中間的元素,而且數(shù)組項必須進(jìn)行連續(xù)處理。Oracle 10g解決了這兩方面的問題,并增加了INDICES OF和VALUES OF子句。
INDICES OF子句替代lower_bound ..upper_bound,說明所有要處理的有效索引值,即使這些值之間存在間隔。就像是這樣:
- FORALL index_name IN INDICES OF collection_name
- BETWEEN lower_bound AND upper_bound
- sql_statement;
您仍然可以應(yīng)用BETWEEN語法限制要處理的范圍,這是一個可選的內(nèi)容。
VALUES OF子句幫助您以不同順序處理主要的集合。您再建立另一個集合,其中只包含您要處理的索引號碼,這些號碼以您希望處理的順序排列。然后該語句變?yōu)椋?/p>
- FORALL index_name IN VALUES OF index_collection
- sql_statement;
列表A中是一個應(yīng)用HR樣本模式的例子。我將部門名稱加載到內(nèi)存中的一個嵌套表內(nèi),然后在里面搜索與IT有關(guān)的部門。每搜索到一個,我保存它的表輸入項索引。VALUES OF子句結(jié)合這組索引對表中的每個部門進(jìn)行INSERT語句處理。(這只是一個示例;用一個單獨的SQL語句也可以進(jìn)行同樣的處理。)列表B中是輸出結(jié)果。
以上的相關(guān)內(nèi)容就是對Oracle 10g中用FIRALL處理非連續(xù)數(shù)組的介紹,望你能有所收獲。
文章出自:http://database.ctocio.com.cn/280/9001780.shtml
本文標(biāo)題:Oracle10g中如何用FIRALL處理某些非連續(xù)數(shù)組
網(wǎng)址分享:http://www.dlmjj.cn/article/copoepo.html


咨詢
建站咨詢
