ORA-30036删除大数据量报错 a:分析是undo表空间不足造成 t1 300w行记录 SQL> delete from t1; delete from t1 * 第 1 行出现错误: ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS5' 中) select (tablespace_name) "表空间名", sum(total_size) "总空间/M", sum(total_free) "剩余空间/M", sum(max_continue) "最大连续空间/M", round(sum(total_free) / sum(total_size) * 100) "剩余百分比/ratio" from ((select tablespace_name, (0) total_size, round(sum(bytes) / 1024 / 1024, 2) total_free, round(max(bytes) / 1024 / 1024, 2) max_continue from dba_free_space group by tablespace_name) union all (select tablespace_name, round(sum(bytes) / 1024 / 1024, 2), 0, 0 from dba_data_files group by tablespace_name)) group by tablespace_name order by 5 asc; 表空间名 总空间/M 剩余空间/M 最大连续空间/M 剩余百分比/ratio ------------------------------ ---------- ---------- -------------- ---------------- UNDOTBS5 50 0 0 0 UNDOTBS3 10 0 0 0 UNDOTBS2 10 .13 .06 1 UNDOTBS4 10 .31 .06 3 USERS 317.5 127.13 126.5 40 SYSAUX 600 353.38 352 59 SYSTEM 700 428.38 428 61 JERRY 550 411.94 362.94 75 TEST 5 3.81 3.75 76 TBS2 5 3.94 3.88 79 TOM 5 3.94 3.94 79 表空间名 总空间/M 剩余空间/M 最大连续空间/M 剩余百分比/ratio ------------------------------ ---------- ---------- -------------- ---------------- UNDOTBS1 200 178.44 174 89 TOM2 20 19 19 95 SOCTT_TBS 200 198.63 198.63 99 解决方案 1:调整表空间的大小 //300w alter database datafile 'D:DEVORACLEDATATESTUNDOTBS05.DBF' resize 1000M;//解决方案ok 2:重新创undo表空间并切换为当前undo表空间 select tablespace_name from dba_tablespaces; select file_name from dba_data_files; create undo tablespace undotbs6 datafile 'D:DEVORACLEDATATESTUNDOTBS06.DBF' size 2000m; alter system set undo_tablespace=UNDOTBS6 原本想创建一个大的表空间替换现有的表空间,,报错 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS5' 中)