当前位置: 代码迷 >> Oracle开发 >> 请问ORA-00001: 违反唯一约束条件应该如何解决
  详细解决方案

请问ORA-00001: 违反唯一约束条件应该如何解决

热度:118   发布时间:2016-04-24 07:40:31.0
请教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 '%过程名%';

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