1.在 commit 之前是放在回滚段中的,只要 commit 就可以释放了。
2.使用 delete 删除数据并不能降低表的高水平标志,只有对表进行重组或移动才可以降低表的高水平标志,及释放表的空间。
3.你启动不起来报什么错?应该是不能进行正常的回滚,你试着恢复一下数据库试试,应该可以(最好是使用冷备份)

解决方案 »

  1.   

    对于第二个问题,我想你可以备份数据后,使用truncate table.
      

  2.   

    谢谢各位:但是现在我进不了sql*plus,输入用户名/口令,提示:
       Error:Ora_01033:oracle initialization or shutdown in progress.还有就是说undotbs02不存在,怎么恢复数据库呢?我没有备份阿!
      

  3.   

    to ks9960(snk):    用truncate table好像不能删除指定表中的满足删除条件的数据。
      

  4.   

    是的.
    不过可以先导出你需要保留的数据,然后truncate,然后在导入吧.
    不知道有什么其它的好办法?
      

  5.   

    现在我进不了sql*plus,输入用户名/口令,提示:
       Error:Ora_01033:oracle initialization or shutdown in progress.
      

  6.   

    问题3:我删除了文件夹中的undotbs02文件.
     执行
    # sqlplus /nolog
    sql>connect / as sysdba
    sql>startup mount
    SQL> select * from v$recover_file;  --查看有哪些已出现问题
    sql>alter database datafile 'D:\ORACLE\ORADATA\...\UNDOTBS02.DBF'offline drop;
    sql>alter database open;后,出现:
    ERROR 位于第 1 行:
    ORA-01147: SYSTEM 表空间文件 13 处于脱机状态
    ORA-01110: 数据文件 13: 'D:\ORACLE\ORADATA\...\UNDOTBS02.DBF'这是怎么回事呢?谢谢。
      

  7.   

    你错误的在数据库关闭时把回滚段以系统命令删除了,这时启动数据库当然会有错~
    现在你不如把整个回滚表空间offline/drop,然后重建~
    先保证把数据库打开吧~
      

  8.   

    try:
    startup mount force