文章詳情頁(yè)
Oracle 10g中用FORALL處理非連續(xù)數(shù)組
瀏覽:131日期:2023-11-25 10:00:24
在PL/SQL循環(huán)中執(zhí)行數(shù)據(jù)操作語(yǔ)言(DML)是一件費(fèi)時(shí)的工作,因?yàn)槊看窝h(huán)都要由PL/SQL引擎轉(zhuǎn)向SQL引擎。應(yīng)用FORALL是一個(gè)更好的方法,它一次性向SQL語(yǔ)句提交一組臨時(shí)值。 在Oracle 10g前,F(xiàn)ORALL語(yǔ)句的語(yǔ)法只能處理連續(xù)性的數(shù)組元素: FORALL index_name IN lower_bound ..upper_bound sql_statement;這意味著:在以前,使用FORALL的嵌套表不能刪除待處理數(shù)組中間的元素,而且數(shù)組項(xiàng)必須進(jìn)行連續(xù)處理。Oracle 10g解決了這兩方面的問(wèn)題,并增加了INDICES OF和VALUES OF子句。 INDICES OF子句替代lower_bound ..upper_bound,說(shuō)明所有要處理的有效索引值,即使這些值之間存在間隔。就像是這樣: FORALL index_name IN INDICES OF collection_name BETWEEN lower_bound AND upper_bound sql_statement;您仍然可以應(yīng)用BETWEEN語(yǔ)法限制要處理的范圍,這是一個(gè)可選的內(nèi)容。 VALUES OF子句幫助您以不同順序處理主要的集合。您再建立另一個(gè)集合,其中只包含您要處理的索引號(hào)碼,這些號(hào)碼以您希望處理的順序排列。然后該語(yǔ)句變?yōu)椋?FORALL index_name IN VALUES OF index_collection sql_statement;
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
