日期:2014-05-17  浏览次数:22325 次

请教ORA-00001: 违反唯一约束条件应该怎么解决
---------------------------
Microsoft Internet Explorer
---------------------------
ORA-00001: 违反唯一约束条件 (PUBR.PK_ALLACTIVE)
ORA-06512: 在"TT.PROC_ALLACTIVE_DEALDATA", line 8

附带问下,怎么查询系统刚刚执行过的存储过程或触发器呢?

------解决方案--------------------
解决方法:

1。先找到该表的主键约束条件,然后删除该表的主键约束条件:

SQL> select * from user_cons_columns where table_name='NODE' ;

然后删除约束条件:

SQL >alter table node drop constraint SYS_C005341;

SQL >alter table node drop constraint SYS_C005342;



2。重新建表,包括建表时的主键,还有与该表相关的序列,触发器等。


------解决方案--------------------
主键列要求数据唯一,说明你insert或update值和现有数据重复。
改变DML语句中该列的值。


系统中刚刚执行过的存储过程或触发器,可以去v$sqlarea的sql_text列里模糊查询。


select sql_text from v$sqlarea
where upper(sql_text) like '%过程名%';

注意过程名或触发器名大写。