请教
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 '%过程名%';
注意过程名或触发器名大写。