我的系统在输入一些数据,执行的是insert into table动作,但出现ORA-00001:unique constraint(space) violated的错误。然后去数据库查了下数据,只插入了一部分数据,只有两个字段类型为clob的没有插进去。
但是我检查了下我要插的那张表里面的主键就只有一个,也没有其他任何的约束,为什么会出现此错误呢。
当稍微改下再insert into数据的时候,没有出现上面的错误,也没有任何反应,数据也没有更新到数据库中去。
这问题如何解决?
------解决方法--------------------------------------------------------
在itpub找到一个解决方法,不知道是否适合于你:
在做几个数据库的statspack时,某个数据库总是报错:
ORA-00001: unique constraint (PERFSTAT.STATS$SQL_SUMMARY_PK) violated
ORA-06512: at "PERFSTAT.STATSPACK", line 1361
ORA-06512: at "PERFSTAT.STATSPACK", line 2471
ORA-06512: at "PERFSTAT.STATSPACK", line 91
ORA-06512: at line 1
到Metalink搜索了一下,是一个Bug,Bug号为:2784796. 在设置了cursor_sharing为similar或者force之后,可能触发此Bug.
检查数据库参数,果然是similar.
此bug据说在Oracle10g中已经修正。
------解决方法--------------------------------------------------------
clob 字段初始插入时需要有empty_clob()
至于说主键重复,估计是某个小地方忽略了
------解决方法--------------------------------------------------------
ORA-00001: unique constraint (string.string) violated
Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. For Trusted Oracle configured in DBMS MAC mode, you may see this message if a duplicate entry exists at a different level.
Action: Either remove the unique restriction or do not insert the key.