以前我們在使用Oracle的相關嵌套表是不能夠刪除待處理數組中間的相關元素,相關的數組項也是必須對其進行連續的相關處理。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;
您仍然可以應用BETWEEN語法限制要處理的范圍,這是一個可選的內容。
VALUES OF子句幫助您以不同順序處理主要的集合。您再建立另一個集合,其中只包含您要處理的索引號碼,這些號碼以您希望處理的順序排列。然後該語句變為:
- FORALL index_name IN VALUES OF index_collection
- sql_statement;
列表A中是一個應用HR樣本模式的例子。我將部門名稱加載到內存中的一個嵌套表內,然後在裡面搜索與IT有關的部門。每搜索到一個,我保存它的表輸入項索引。VALUES OF子句結合這組索引對表中的每個部門進行INSERT語句處理。(這只是一個示例;用一個單獨的SQL語句也可以進行同樣的處理。)列表B中是輸出結果。
以上的相關內容就是對Oracle 10g中用FIRALL處理非連續數組的介紹,望你能有所收獲。