标签: ora-00001

约束违规例外ORA-00001

我正在使用Oracle数据库.我们看到我们的服务电话频繁失败.当我查看日志时,我看到桌子上有例外情况

java.sql.BatchUpdateException:ORA-00001:违反了唯一约束(DBSCHEMA.IDX_CO_DETAILS).

我已经检查了表中索引名称DBSCHEMA.IDX_CO_DETAILS的索引.

它不包含任何列(INCLUDE_COLUMN为null).我怎么知道这个约束是什么?它是主键约束吗?

我们正在使用hibernate进行ORM.下面是hibernate上下文中的后向跟踪

Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
Run Code Online (Sandbox Code Playgroud)

oracle indexing hibernate ora-00001

3
推荐指数
1
解决办法
3万
查看次数

多列上的唯一约束是否存在性能问题-Oracle

我正在使用Oracle数据库,我有一个客户记录表,并希望在多个varchar2列上放置一个唯一键约束.喜欢

CUST_ID (Number),

CUST_Name(varchar2),
Run Code Online (Sandbox Code Playgroud)

Cust_N.I.C_NO(varchar2) 将制作一个独特的钥匙.

当通过表单6i插入新记录时,如果ORA-00001出现错误,将通知用户它是DUPLICATED记录.

如果此表中的记录超过50000或更多,请告知我是否存在任何数据库性能问题.

如果这不是一个避免插入重复记录的好习惯,那么请建议任何其他方法.

问候.

oracle performance database-design ora-00001

2
推荐指数
1
解决办法
1360
查看次数

MERGE - 不匹配时 INSERT 的异常

我有一个使用 MERGE 的 PL/SQL 过程:

MERGE INTO 
  table_dest d
USING
  (SELECT * FROM my_Table) s
ON
  (s.id = d.id)
when matched     then UPDATE set d.col1 = s.col1
when not matched then INSERT (id, col1) values (s.id, s.col1);
Run Code Online (Sandbox Code Playgroud)

现在假设查询s返回具有相同 id 的多行,这将返回ORA-00001: unique constrain 错误

我想要做的是将重复的列发送到另一个表my_Table_recyledbin以获得成功的 INSERT,我可以使用吗EXCEPTION WHEN DUP_VAL_ON_INDEX?如果是,如何将其与 MERGE 语句一起使用?

提前致谢

sql oracle merge ora-00001

1
推荐指数
1
解决办法
5万
查看次数

在Oracle中,我可以执行"将值插入或更新到TABLE"

我有一个包含两个数字列的表,以及对它们的唯一约束.我想插入一对新的值,除非该对已经存在.最简单的方法是什么?

如果我做

insert into TABLE values (100,200) 
Run Code Online (Sandbox Code Playgroud)

并且该对已经存在我得到ORA-00001错误,所以我想做类似的事情

insert or update into TABLE values (100,200)
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00001

0
推荐指数
1
解决办法
421
查看次数