我用视图dba_data_files查得表空间PSAPUNDO对应数据文件大小4.7GB,然后用视图dba_free_space查得表空间PSAPUNDO的有70个block_id,一共3.2GB。我是否可以将该数据文件大小修改为2.0G?我用Alter DATABASE DATAFILE 'D:\ORACLE\ERP\UNDO\UNDO.DATA1' RESIZE 2000M 修改数据文件大小,系统提示:file contains used data beyond requested RESIZE value.我该如何压缩该数据文件大小?

解决方案 »

  1.   

    意思是超过2G的地方已经被使用了,所以没办法resize
    建议直接重建一个UNDO表空间,然后修改当前undo到这个表空间,再删除原来的UNDO表空间就行了
      

  2.   

    如果要修改数据文件的大小,必须使得修改后的数据文件大小不能小于该文件已占用和空间大小.
    按照楼主的要求.你的数据文件已经用了3.2G,如果你想RESIZE该数据文件的大小的话,则修改后的大小必须大于等于3.2G.否则,就会出错.