需要根據一份excel里面的userid更新兩列內容。資料量大概有30w行。大概結構如下:
USERID COL1 COL2
111 AA AAA
222 BB BBB
...
Oracle資料庫里有一張類似的表t,但是需要根據excel的USERID 更新COL1,COL2.
我在excel里用拼接公式生成update陳述句,如下:
update t set COL1 = 'AA', COL2 = 'AAA' WHERE USERID = '111';
update t set COL1 = 'BB', COL2 = 'BBB' WHERE USERID = '222';
...
這樣復制到PLSQL里面跑update陳述句,但是狀態欄就會一直是initializing狀態,等了很久都卡在那里,最后只能強行退出。我嘗試過跑100多句是沒問題的,陳述句是ok的。批量執行太多就不行了。
請各位大牛指教一下還有什么好辦法可以批量更新。
uj5u.com熱心網友回復:
鎖表了吧。。。。。。。uj5u.com熱心網友回復:
update里面的userid沒有重復的,這個我已經去重資料了。 我也試過每句update后面加commit。也還是不行。。。卡住狀態uj5u.com熱心網友回復:

補充張圖片,卡住的界面是這樣
uj5u.com熱心網友回復:
嗯,我把update陳述句放到BEGIN, END 代碼塊里面執行。現在至少界面不會卡住, 一直在執行。一萬行資料用了113s,還可以接受。Begin
update....;
commit;
update...;
commit;
End;
uj5u.com熱心網友回復:
每一條update陳述句之后都跟一個commit,這樣能釋放資源轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/69651.html
標籤:開發
上一篇:server2016安裝virtualbox后,安裝虛擬機kali-linux失敗
下一篇:oracle 查詢陳述句咨詢
