首页 > 解决方案 > 获取有关在 Oracle 中导致“ORA-00001 违反唯一约束”错误的源行的信息

问题描述

有什么方法可以获取导致源行/表的完整行或选定列

 "ORA-00001 unique constraint violated" error.

这是一个小例子。

create table DW_DATA (
                      file_id number,
                      process_date date,
                      record_info varchar2(50),
                      constraint uk_pd_ri unique (process_date, 
                                                  record_info)
);

创建后,插入第一条记录,

insert into DW_DATA
             values (100, 
                     '10-Jul-2018', 
                     'Information about row');

犯罪;

现在,我正在插入一个新行。

insert into DW_DATA
             values (200, 
                    '10-Jul-2018', 
                    'Information about row');

它将抛出错误“违反 ORA-00001 唯一约束”。

所以,我的问题是,是否可以使用 DBMS_ERRLOG 概念获取源行的 file_id,即 100。或者是否有任何其他方法可用于获取有关源行的信息。

标签: sqloracleplsql

解决方案


select process_date, record_info, count(*) from DW_DATA 
group by process_date, record_info
having count(*) >1  

您将获得重复的英国值列表。


推荐阅读