ORACLE导出表后序列问题

问题描述:

      在用exp/imp导入导出数据库的时候,新的库经常出到序列小于表中最大值的情况。一直都不知道问题出在了什么地方,后来经同事提醒才恍然大悟,在exp的时候,应用程序是没有停止的,也就是说,命令在执行的过程中,先导出了序列,然后再导的表,而表的数据一直在增加,所以出现此情况。

解决方法:

      知道问题所在了,那就知道解决方案了。

  1:工具:导出库后,再用PLSQL把序列导出来(命令窗口不行,因为exp不能只导序列),导入库后重建序列。

  2:手工:导出库后,使用SQL生成建序列脚本,导入库后重建序列。

SELECT ' create sequence username.' || SEQUENCE_NAME || 
       ' minvalue ' || MIN_VALUE || 
       ' maxvalue ' || MAX_VALUE || 
       ' start with ' || LAST_NUMBER || 
       ' increment by ' || INCREMENT_BY || 
       ' cache ' || CACHE_SIZE || ' ;'
  FROM USER_SEQUENCES;

猜你喜欢

转载自hn-archer.iteye.com/blog/1703931