解决Oracle 11g 导出数据报 “ORA-01455: 转换列溢出整数数据类型”的问题
导读
问题描述:
在进行数据库备份时候,导出dmp数据出现““ORA-01455: 转换列溢出整数数据类型”的错误
Oracle版本号为11.2.0.1,操作系统为Windows Server2008R2
问题排查解决:
换电脑以及服务器尝试,存在同样问题,在网上查询相关资料,发现问题原因主要有下面几个方面,进行了一一排除。
1、存在空表,检查表中有数据,且没有特殊的数据类型(blob,clob等),就是一个普通的表,该问题排除;
2、统计信息问题,修改使用导出语句进行导出,添加Direct=y INDEXES=n STATISTICS=none等参数,问题依旧;
3、客户端和服务端版本不对应问题,我这里本地不存在这个问题,可以排除;
4、数据本身问题,检查数据无错误,未发现异常;
5、可能关联有物化视图、快照等导致,经检查,无相关内容,可以排除。
最终,未发现根本原因,通过expdb命令方式导出,导出正常,如果有遇到同样情况的可以参考一下,expdb命令在此不再进行详细说明。
补充:下面看下ORACLE 11g 导出数据的操作步骤:
ORACLE 11g 导出 表的时候 不会导出空表
导出空表操作步骤 :(使用PLSQL)
1、打开SQL window 执行下面的 SQL
Select 'alter table '||table_name||' allocate extent;' from user_tables where segment_created = 'NO' UNION ALL Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
2、获取到查询的数据,然后选择获取最后页(Alt+End),选中全部结果,复制。
3、粘贴到Command,然后执行。
这是对空表进行设定,这样在导出的时候就不会忽略空表。
评论(0)