使用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就不会报这个错,尝试之,仍然报错。
此时想是不是有正在执行的存储过程造成的,查看并杀掉锁住的进程后重新尝试,还是报错。
最后看到有人说是视图引起的,检查一下果然有一个视图没有编译成功。把视图语句保存下来,删掉视图,再次尝试,果然没有报错。
原文地址:http://4445027.blog.51cto.com/4435027/1440317