加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Oracle】ORA-01455: 转换列溢出整数数据类型

发布时间:2020-12-12 15:55:18 所属栏目:百科 来源:网络整理
导读:【问题】 Oracle11g 导出数据时出现 . . 正在导出表 ACCEPTORDER导出了 0 行 . . 正在导出表 CASHPAY导出了 0 行 . . 正在导出表 CMS_CHANNEL导出了 11 行 . . 正在导出表 CMS_COMMENT导出了 3 行 . . 正在导出表 CMS_CONTENT导出了 12372 行 . . 正在导出表

【问题】 Oracle11g 导出数据时出现

. . 正在导出表 ACCEPTORDER导出了 0 行
. . 正在导出表 CASHPAY导出了 0 行
. . 正在导出表 CMS_CHANNEL导出了 11 行
. . 正在导出表 CMS_COMMENT导出了 3 行
. . 正在导出表 CMS_CONTENT导出了 12372 行
. . 正在导出表 CMS_CONTENTGROUP导出了 10 行
. . 正在导出表 CMS_GATHERRULE导出了 1 行

EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
EXP-00000: 导出终止失败

【分析】 出现此错误之前,是记录数为0的表没有被导出

查阅资料,得到原因是Oracle11g增加了参数deferred_segment_creation,参数默认值是TRUE,新建的表无记录时滞后分配段的,所以EXP无法导出空表

【解决】:用本用户登录,下面三个语句查看,结果是不是0行记录(通常第一个肯定不是0条)
select 'alter table '||table_name||' allocate extent;'from user_tables WHERE SEGMENT_CREATED='NO';
select * from user_indexes WHERE SEGMENT_CREATED='NO';
select * from user_lobs where segment_created='NO';
按照第一个语句构造出来的语句执行,之后再查看,三个语句结果都是0行记录了.之后,进行EXP正常.
或者调整Oracle参数 alter system set deferred_segment_creation=FALSE;),则之后新建的空表会自动分配段,之前建的空仍是没有分配段的,仍需要处理一下.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读