您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Oracle中批量查詢、刪除、更新使用BULK COLLECT提高效率的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
BULK COLLECT(成批聚合類型)和數組集合type類型is table of 表%rowtype index by binary_integer用法筆記。
例1: 批量查詢項目資金賬戶號為 "320001054663"的房屋賬戶信息并把它們打印出來 .
DECLARE TYPE acct_table_type IS TABLE OF my_acct%ROWTYPE INDEX BY BINARY_INTEGER; v_acct_table acct_table_type; BEGIN SELECT * BULK COLLECT INTO v_acct_table FROM my_acct WHERE parent_fund='320001054663'; FOR i IN 1..v_acct_table.COUNT LOOP ---循環打印 dbms_output.put_line('ACCT:'||v_acct_table(i).fund|| ','||v_acct_table(i).bal||','||v_acct_table(i).real_nmbr); END LOOP; END;
說明部分:
1. DECLARE 說明以下你要聲明的部分
2. Type 聲明是類型acct_table_typ e 類型的名字
3. IS TABLE OF 指定是一個集合的表的數組類型, 簡單的來說就是一個可以存儲一列多行的數據類型 , my_acct指出在哪個表上( 存在的表 ) %ROWTYPE 指在表上的行的數據類型.
4. INDEX BY BINARY_INTEGER 指索引組織類型
5. v_acct_table 定義一個變量來存儲集合數據類型
6. BULK COLLECT INTO 指是一個成批聚合類型, 簡單的來說 , 它可以存儲一個多行多列存儲類型 ,into 后面指定從哪里來 ,
7. v_acct_table.COUNT 用來 v_acct_table 里面的數量
8. (i)表示下標號
例2: 批量更新項目資金賬戶號為 "320001054663"的房屋賬戶的余額。
DECLARE TYPE fund_table_type IS TABLE OF acct.fund%TYPE; TYPE bal_table_type IS TABLE OF acct.bal%TYPE; v_fund_table fund_table_type; v_bal_table bal_table_type; BEGIN UPDATE acct SET bal=bal*1000 WHERE parent_fund='320001054663' RETURNING fund,bal BULK COLLECT INTO v_fund_table,v_bal_table; FOR i IN 1..v_fund_table.COUNT LOOP dbms_output.put_line('ACCT:'||v_fund_table(i)||','||v_bal_table(i)); END LOOP; END;
說明部分:
1. %TYPE和 acct.fund數據類型一樣
v_fund_table fund_table_type;
2. v_bal_table bal_table_type; 定義變量來存儲它們 .
3. RETURNING 用來指定要返回的部分 ,BULK COLLECT INTO 成批聚合類型
4. 用for 把它們打印出來
關于“Oracle中批量查詢、刪除、更新使用BULK COLLECT提高效率的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。