在測試過程中需要清空資料庫中的幾張表,在PL/SQL客戶端中使用DELETE語句,然而出現瞭如下錯誤: ,出現這個錯誤的原因是DELETE操作會將刪除的數據暫存在一個UNDOTBS文件中,便於事務的回滾,然而對於數據量特別大的表,例如百萬以上的數據表,DELETE操作產生的臨時數據會占滿UNDOTB ...
在測試過程中需要清空資料庫中的幾張表,在PL/SQL客戶端中使用DELETE語句,然而出現瞭如下錯誤:
ORA-30036: 無法按 1024 擴展段 (在撤消表空間 'UNDOTBS_1' 中)
,出現這個錯誤的原因是DELETE操作會將刪除的數據暫存在一個UNDOTBS文件中,便於事務的回滾,然而對於數據量特別大的表,例如百萬以上的數據表,DELETE操作產生的臨時數據會占滿UNDOTBS文件,所以會出現這個錯誤提示,根據網上的解決方案,一種是增加UNDOTBS文件的大小,而我的這個問題可以更簡單一點,不要使用DELETE語句,而是使用TRUNCATE語句,兩者的區別是:TRUNCATE操作屬於DDL,因此不會產生回滾的臨時數據,可以即刻生效,缺點是數據一旦刪除就無法恢復了。