使用EXP導出數據時,到結尾處報exp-OOO56,ORA-01455:轉換列溢出整數數據類型。
上網查找原因,大部分說是因爲export命令會將表的statistics值轉成整數,當這個值超過2^32-1時,就會報錯,可以查看dba_tables和dba_indexes的num_rows值是否超過了該值。如果超過了手工修改:
dbms_stats.set_table_stats(<owner>,<table_name>,<statistic_field>=><new lower value>)
刪除對應的統計信息 :analyze table <table_name> delete statistics
analyze index <index_name> delete statistics
按此查看,發現dba_tables和dba_indexes中num_rows的值沒有太大的,於是決定忽略,按網上辦法,可以exp 命令時加入參數 indexes=n statistics=none就不會報這個錯,嘗試之,仍然報錯。
此時想是不是有正在執行的存儲過程造成的,查看並殺掉鎖住的進程後重新嘗試,還是報錯。
最後看到有人說是視圖引起的,檢查一下果然有一個視圖沒有編譯成功。把視圖語句保存下來,刪掉視圖,再次嘗試,果然沒有報錯。