主頁(yè) > 知識(shí)庫(kù) > Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率

Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率

熱門標(biāo)簽:南通電銷外呼系統(tǒng)哪家強(qiáng) 理財(cái)產(chǎn)品電銷機(jī)器人 外呼系統(tǒng)好點(diǎn)子 百度地圖標(biāo)注注解 電話機(jī)器人那種好 區(qū)域地圖標(biāo)注怎么設(shè)置 上海網(wǎng)絡(luò)外呼系統(tǒng) 地圖標(biāo)注的坐標(biāo)點(diǎn) 百度地圖標(biāo)注飯店位置怎么

BULK COLLECT(成批聚合類型)和數(shù)組集合type類型is table of 表%rowtype index by binary_integer用法筆記。

例1: 批量查詢項(xiàng)目資金賬戶號(hào)為 "320001054663"的房屋賬戶信息并把它們打印出來(lái) .

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 
      ---循環(huán)打印 
      dbms_output.put_line('ACCT:'||v_acct_table(i).fund|| ','||v_acct_table(i).bal||','||v_acct_table(i).real_nmbr); 
  END LOOP; 
END;

說(shuō)明部分:

1. DECLARE  說(shuō)明以下你要聲明的部分

2. Type 聲明是類型acct_table_typ e 類型的名字

3. IS TABLE OF  指定是一個(gè)集合的表的數(shù)組類型, 簡(jiǎn)單的來(lái)說(shuō)就是一個(gè)可以存儲(chǔ)一列多行的數(shù)據(jù)類型 , my_acct指出在哪個(gè)表上( 存在的表 ) %ROWTYPE 指在表上的行的數(shù)據(jù)類型.

4. INDEX BY BINARY_INTEGER  指索引組織類型

5. v_acct_table 定義一個(gè)變量來(lái)存儲(chǔ)集合數(shù)據(jù)類型

6. BULK COLLECT INTO  指是一個(gè)成批聚合類型, 簡(jiǎn)單的來(lái)說(shuō) , 它可以存儲(chǔ)一個(gè)多行多列存儲(chǔ)類型 ,into 后面指定從哪里來(lái) ,

7. v_acct_table.COUNT 用來(lái) v_acct_table 里面的數(shù)量

8. (i)表示下標(biāo)號(hào)

例2: 批量更新項(xiàng)目資金賬戶號(hào)為 "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; 

說(shuō)明部分:

1. %TYPE和 acct.fund數(shù)據(jù)類型一樣

  v_fund_table fund_table_type;

2. v_bal_table bal_table_type; 定義變量來(lái)存儲(chǔ)它們 .

3. RETURNING 用來(lái)指定要返回的部分 ,BULK COLLECT INTO  成批聚合類型

4. 用for  把它們打印出來(lái)

總結(jié) :

  • 實(shí)驗(yàn)時(shí)把set serveroutput on  打開(kāi)
  • 以上的例子的目的主要是為了提高性能. 這里的性能主要指的是速度  .
  • 速度指的是批量插入, 更新 , 刪除  , 為什么會(huì)提高速度呢 ?  提取到的數(shù)據(jù)都在內(nèi)存中進(jìn)行處理, 因?yàn)樵趦?nèi)存處理比較快 , 這是常識(shí) .

以上所述是小編給大家介紹的Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Oracle批量插入數(shù)據(jù)的三種方式【推薦】
  • C# Oracle批量插入數(shù)據(jù)進(jìn)度條的實(shí)現(xiàn)代碼
  • Oracle + Mybatis實(shí)現(xiàn)批量插入、更新和刪除示例代碼
  • MyBatis批量插入數(shù)據(jù)到Oracle數(shù)據(jù)庫(kù)中的兩種方式(實(shí)例代碼)
  • Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù)
  • mybatis執(zhí)行批量更新batch update 的方法(oracle,mysql兩種)
  • Oracle批量導(dǎo)入文本文件快速的方法(sqlldr實(shí)現(xiàn))
  • Oracle+Mybatis的foreach insert批量插入報(bào)錯(cuò)的快速解決辦法
  • Java實(shí)現(xiàn)mybatis批量插入數(shù)據(jù)到Oracle
  • Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵
  • oracle+mybatis 使用動(dòng)態(tài)Sql當(dāng)插入字段不確定的情況下實(shí)現(xiàn)批量insert
  • Oracle 高速批量數(shù)據(jù)加載工具sql*loader使用說(shuō)明
  • Oracle數(shù)據(jù)庫(kù)更新大批量數(shù)據(jù)案例

標(biāo)簽:自貢 百色 遼源 寧波 海東 紹興 中衛(wèi) 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率》,本文關(guān)鍵詞  Oracle,批量,查詢,刪除,更新,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章