当前位置:主页 > 数据库 > Oracle >

解决Oracle 11g 导出数据报 “ORA-01455: 转换列溢出整数数据类型”的问题

时间:2022-02-28 09:20:24 | 栏目:Oracle | 点击:

问题描述:

在进行数据库备份时候,导出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,然后执行。

这是对空表进行设定,这样在导出的时候就不会忽略空表。

您可能感兴趣的文章:

相关文章