为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:7.6
【操作系统】:centos
【CPU】:
【问题描述】*:通过存储过程配置定时迁移,报违反唯一约束
1、生产库查询前一天的数据中不存在14号之前已经迁移过去的数据。
2、归档库也没有查询到15号的数据
3、执行定时任务报违反唯一约束
sql
INSERT INTO "OBSSTORAGE"."OBS_FILE"(
"FILE_ID",
"ORIGINAL_NAME",
"FILE_SUFFIX" )
SELECT "FILE_ID",
"ORIGINAL_NAME"
FROM "OBSSTORAGE"."OBS_FILE" @DM
WHERE CREATE_TIME >= TRUNC(SYSDATE) - INTERVAL '1' DAY
AND CREATE_TIME < TRUNC(SYSDATE);
COMMIT;
可以使用errorlog table,将错误数据插入到对应的log表
具体使用方法如下
SP_CREATE_SYSTEM_PACKAGES(1,'DBMS_ERRLOG');
create table t1 (id int primary key,name varchar(20));
begin
DBMS_ERRLOG.CREATE_ERROR_LOG('T1','LOG_T1');
end;
/
insert into t1 values(1, 'a') LOG ERRORS INTO LOG_T1('INSERT ERROR') REJECT LIMIT UNLIMITED;
此时可以在LOG_T1中看到哪些数据违反了唯一约束
可以把数据库插入到一张临时表,具体观察一下数据库,是否存在什么特殊异常的地方。