问题现象
. . 正在导出表 TMP_TEST
EXP-00008: 遇到 ORACLE 错误 604
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01426: 数字溢出
导出成功终止, 但出现警告。
问题原因
添加了含有默认值的列,如下例句
alter table TMP_TEST add FLAG NUMBER(1) default 0;
解决办法
1.删除新增加的列
alter table TMP_TEST drop column FLAG;
2.重新添加列
alter table TMP_TEST add FLAG NUMBER(1) ;
3.设置列的默认值属性
alter table TMP_TEST modify FLAG default 0;
4.给列赋上默认值
update TMP_TEST set FLAG=0 where FLAG is null;
特别注意:
对于已经发生数据的列,需先用临时表缓存数据,修改后再用缓存数据更新