我知道违反唯一索引 肯定是有该索引字段中有重复的数据,但是我遇到一个奇怪的问题,请大家帮忙啊
我往表A中插入数据的时候报错:ora-00001,A中(账号,日期)设置为唯一索引,日期取当天日期,这个我debug的时候看过,日期是正确的,而且同期数据中的账号也没有重复数据,不知道为什么还会报这个错,请大家帮忙,急啊。。

解决方案 »

  1.   

    select   *   from   user_constraints   where   table_name= upper(tablname)这样查一下吧,如果没有,不会出现这样的错误的
      

  2.   

    发生这种错的只有两种情况:
    1.往表里面写入了已经存在的键值
    2.表里面没有发生违反约束的键值,但是在同一批写入的数据中,存在有重复的键值。
    照着上面这两条去查,很easy的~
      

  3.   

    通常出现ORA-00001错误时,后面会跟着一个 Unique constraint "USER"."CONSTRAINT_NAME" violated。这个CONSTRAINT_NAME就是出错的约束名,进而根据它确定是哪个列。
      

  4.   


    ora-00001错误后,还有别的提示没有。根据你的描述,这个insert的动作是在你的procedure里的吧,你查询的时候,和debug不是一个transaction,所以查询的时候没有数据,不表示debug procedure里面没有数据。