为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8.1
【操作系统】:
【CPU】:
【问题描述】*:有这样的场景:使用dimp导入1月份的数据,由于目标表是年表,存有其他月份的数据,而且自增字段可能源和目标不一致,不能直接追加,可能会出现主键重复,所以计划是使用REMAP_SCHEMA参数先将数据导入到其他schema,然后再通过insert into select的方式导入。但是如果REMAP_SCHEMA配置有问题,比如源schema写错,那么导入的时候REMAP_SCHEMA参数就会不生效,但是导入是正常导入,导致目标表原有的数据被覆盖。希望可以添加如果参数配置有问题,可以有提示,并终止本次导入
针对咱们描述的场景信息进行了测试:
1、当REMAP_SCHEMA的参数源端指定错误时,就会判定SCHEMA模式失效了,只会将数据导入到原表中。如果此时是搭配TABLE_EXISTS_ACTION=TRUNCATE/REPLACE参数时确实会将原表数据进行清空,只导入原导出的数据。如果TABLE_EXISTS_ACTION=APPEND的情况下,不会将数据进行覆盖,是会进行追加,如果存在主键的情况下会报错并停止导入动作。
2、在其他的数据库上也进行了相应的测试,当REMAP_SCHEMA的参数源端指定错误时,会抛出相应的SCHEMA不存在的报错,但是还是会将数据导入到原表中。除非通过特殊的情况进行处理该任务。
3、建议:规范的使用相应的命令和参数配合,如果实在怕出现错误的情况下也可以通过shell脚本对相应的SCHEMA先进行判断是否正确后再执行相应的导入命令