ora-00001删除之后还提示

今天遇到个奇怪的现象

SqlMapClient operation; SQL [];   --- The error occurred in config/ibatis/baseinfo.xml.  --- The error occurred while applying a parameter map.  --- Check the insertBaseinfo-InlineParameterMap.  --- Check the statement (update failed).  --- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (COTTON.UN_BASEINFO_USERCODE); nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   --- The error occurred in config/ibatis/baseinfo.xml.  --- The error occurred while applying a parameter map.  --- Check the insertBaseinfo-InlineParameterMap.  --- Check the statement (update failed).  --- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (COTTON.UN_BASEINFO_USERCODE)


1.通过sql语句删除 ALTER TABLE baseinfo DROP CONSTRAINT UN_BASEINFO_USERCODE; --提示成功

2.再次执行插入,还是报上面的错误

3.再次执行第一步,提示已经没有此约束了,尝试查看此约束

3.1 SELECT constraint_name FROM all_constraints WHERE  owner = 'COTTON';--没有查询到

3.2 select * from dba_constraints t WHERE t.constraint_name='UN_BASEINFO_USERCODE';--也没有查询到

绕进了死胡同,说明已经没有此约束了,但程序还是报错,程序不会骗人的,肯定有某个地方没有更改。

4.直接备份到本地,通过plsql查看,发现index(索引)没有删除,ok,删掉之后一切正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-01439是Oracle数据库中的一个错误代码,当我们试图修改表的字段数据类型时,系统可能会提示此错误。 要更改列的数据类型,我们可以使用ALTER TABLE语句的MODIFY子句。在这个操作中,我们需要指定要修改的列的名称和新的数据类型。 例如,如果我们要将一个列的数据类型从VARCHAR2修改为NUMBER,可以使用以下语法: ALTER TABLE 表名 MODIFY 列名 新的数据类型; 其中,表名是要修改的表的名称,列名是要修改的列的名称,新的数据类型是我们希望将列修改为的数据类型。 需要注意的是,修改列的数据类型可能会导致数据的丢失或变形。因此,在执行此操作之前,务必备份数据表,并确保已妥善处理了可能的数据转换问题。 此外,还需要考虑以下几点: 1. 如果表中已经存在数据,该数据必须与新的数据类型兼容。否则,修改可能会失败或导致数据损坏。 2. 如果修改的列在任何索引中被使用,那么需要先删除或修改相关的索引,以便在修改列的数据类型后重新创建索引。 3. 如果列被其他表或程序引用,那么在修改列之前,需要相应地修改相关的外键和依赖项。 总结起来,ORA-01439的错误意味着我们在修改表的字段数据类型时遇到了问题。通过使用ALTER TABLE语句的MODIFY子句,我们可以更改列的数据类型。然而,在执行此操作之前,我们需要注意潜在的数据转换问题,并确保兼容性、索引和外键的正确处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值