婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle數據庫更新大批量數據案例

Oracle數據庫更新大批量數據案例

熱門標簽:海南400電話哪里辦理 貴陽電話外呼系統哪家好 400電話是不是免費申請 南寧人工智能電銷機器人費用 濟南地圖標注公司 圖像地圖標注 呼倫貝爾智能手機地圖標注 安陽外呼系統免費 分布式呼叫中心

更新大批量數據的背景:

用戶需要將VIP的微信標識,傳給用戶的ERP會員檔案中,已知存量數據約50W行數據,線下的微信標識數據我們開發提供了openid和erpid的csv文件,erpid和線下的會員檔案id對應,需要將openid也更新到會員檔案里。

更新數量大致分為兩大步驟

一、將我們要更新的數據源導入數據庫內,需要創建臨時表,將數據傳入臨時表
二、寫游標,將臨時表內的數據與需要更新的數據進行更新

1.將csv文件里面的數據導入數據庫臨時表中,先創建臨時表

create table vip_openid
(erpid number(10),
 openid varchar(200)
)

2.臨時表創建后,將cvs文件里的數據導入表中,在這里我們選擇工具>文本導入器 

選擇要導入的csv文件,注意csv文件的表字段和數據庫表字段對應 

選擇文件后在界面將會預覽導入的數據 

3.點擊到oracle的數據,選擇導入的表,先選擇用戶名,用戶名下的表名,然后選擇表與csv文件表字段對應關系,我們選擇導入,可以看到提示導入完成。

4.接下來就是對會員表和臨時表的數據關聯更新,我們先使用直接update方式進行更新試驗,該方法只更新5W數據,耗時12分鐘左右:

于是參考百度文檔建議,寫了一個游標如下

declare
 cursor cur is--聲明游標cur
 select B.openid,A.ID ROW_ID
  FROM C_CLIENT_VIP A ,VIP_OPENID B
  WHERE A.ID=B.ERPID
  ORDER BY A.ID;--從A和B表中找到ID對應的openid,并對游標內數組排序
 V_COUNTER NUMBER;--聲明一個number類型的變量
BEGIN 
V_VOUNTER:=0;--初始化變量值為0
 FOR ROW IN CUR LOOP--遍歷游標
  UPDATE C_CLIENT_VIP A SET A.OPENID=ROW.OPENID WHERE A.ID=ROW_ID;
    V_COUNTER:=V_COUNTER+1;--每次循環變量值+1
  IF(V_COUNTER>=1000) THEN
    COMMIT;
    V_COUNTER:=0;--每更新1000行,V_COUNTER值為1000時候,就提交給數據庫
    提交后將變量歸零,繼續下一個1000行更新
  END IF;
 END LOOP;
  COMMIT;
END;


大概48W行數據,43秒即更新完畢。

使用以上方式注意一點,因為數據庫會員表的ID有索引,所以使用游標速率很快。如我們的多表關聯字段沒有索引,使用此方式可能效果不是很明顯。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • Oracle批量插入數據的三種方式【推薦】
  • C# Oracle批量插入數據進度條的實現代碼
  • Oracle + Mybatis實現批量插入、更新和刪除示例代碼
  • MyBatis批量插入數據到Oracle數據庫中的兩種方式(實例代碼)
  • Oracle兩張表關聯批量更新其中一張表的數據
  • Oracle批量查詢、刪除、更新使用BULK COLLECT提高效率
  • mybatis執行批量更新batch update 的方法(oracle,mysql兩種)
  • Oracle批量導入文本文件快速的方法(sqlldr實現)
  • Oracle+Mybatis的foreach insert批量插入報錯的快速解決辦法
  • Java實現mybatis批量插入數據到Oracle
  • Oracle批量執行sql語句之禁用所有表的外鍵
  • oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert
  • Oracle 高速批量數據加載工具sql*loader使用說明

標簽:合肥 郴州 南充 焦作 涼山 滁州 遼源 許昌

巨人網絡通訊聲明:本文標題《Oracle數據庫更新大批量數據案例》,本文關鍵詞  Oracle,數據庫,更新,大批量,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle數據庫更新大批量數據案例》相關的同類信息!
  • 本頁收集關于Oracle數據庫更新大批量數據案例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 高雄县| 乌拉特前旗| 慈溪市| 闻喜县| 慈溪市| 阿巴嘎旗| 比如县| 开化县| 广水市| 普安县| 陆川县| 盐津县| 堆龙德庆县| 茶陵县| 上思县| 开化县| 浏阳市| 饶平县| 肥东县| 双峰县| 徐闻县| 晋中市| 平乐县| 台北县| 伽师县| 大港区| 民勤县| 滁州市| 禄劝| 盘山县| 丰都县| 通江县| 眉山市| 乌审旗| 民丰县| 鱼台县| 民权县| 延边| 米脂县| 丽江市| 沙洋县|