先講下我遇到的情況:
有一張表a,已經存在乙個欄位該字段是date型別,需求將該字段改為varchar2()型別,我們都知道,
oracle在該字段有值情況是不可以更新資料的,如果你不在乎該字段在表中位置變化的話,可以方法一操作:
方法一:新增乙個字段,然後把原列資料複製到這個列下,然後把原欄位刪除,把新增的字段重新命名。
如果不想改變列位置但需要改變型別,請看下面:
oracle
支援快速游標,不需要定義直接把游標寫到
for迴圈中,這樣就方便了我們批量更新資料。
再加上oracle
的rowid
物理字段(
oracle
預設給每個表都有
rowid
這個字段,並且是唯一索引),可以快速定位到要更新的記錄上。
begin
for cr in (select a.rowid,b.yqrq from temp_jhgl a,zj_jhgl b where a.id = b.id) loop
update temp_jhgl set yqrq = to_char(cr.yqrq,'yyyy/mm/dd') where rowid = cr.rowid;
end loop;
end;
使用快速游標的好處很多,可以支援複雜的查詢語句,更新準確,無論資料多大更新效率仍然高,但執行後不返回影響行數。 批量更新資料庫
前言 最近做了個專案 把txt檔案中的資源資訊全量更新到資料庫中,拿到這個專案後,我首先考慮到效能問題應該是個大問題,於是想到了用批處理解決,但是批處理不能支援事物回滾,且只能一條一條sql執行,效率雖然比直接更新資料庫要快,且不占用cpu。經諮詢有一種更好的方法,就是先用c 自帶提供的方法sqlb...
Oracle資料庫更新大批量資料案例
更新大批量資料的背景 使用者需要將vip的微信標識,傳給使用者的erp會員檔案中,已知存量資料約50w行資料,線下的微信標識資料我們開發提供了openid和erpid的csv檔案,erpid和線下的會員檔案id對應,需要將openid也更新到會員檔案裡。更新數量大致分為兩大步驟 一 將我們要更新的資...
資料庫批量更新維護
情況 多台資料庫伺服器,每台伺服器多個資料庫,資料庫結構一致 提供給不同客戶使用 一 手工操作 1 資料庫少 下拉列表選擇不同資料庫,執行更新指令碼sql.資料庫少,操作感覺不到麻煩。2 資料庫多 下拉列表選擇不同資料庫,操作麻煩,容易遺漏更新資料庫。sql server management st...