zoukankan      html  css  js  c++  java
  • ORA-02290: 违反检查约束条件

           最近在执行数据归档的存储过程的时候,总是抛出以下异常信息:ORA-02290: check constraint (BZFZ_YC_IA.SYS_C0091946) violated。这个异常很奇怪,之前没遇到过,而且SYS_C0091946在plsql developer中也找不到,猜测可能是有字段不能为空造成的。但是根据经验字段不能为空应该抛出ORA-01400: cannot insert NULL into ("BZFZ_YC_IA"."HIS_CASE_INFO"."BILLING_STATUS")的异常,而且在plsql developer中查看,该字段确实是可为空的,而且也没有任何约束。一直纠结了半天,才在网上找到一些相关信息。

           首先,oracle数据库的约束有五种类型: 1、主键约束( Primary key, 简称 PK) 、 2、非空约束( not null , 简称 NN ) 、 3、唯一约束( Unique , 简称 UK ) 、4、检查约束( Check , 简称 CK ) 、 5、外键( Foreign key, 简称 FK )。这里的check应该是检查约束。

           要确定约束在哪一字段上,使用sql:

           select * from user_constraints where table_name='TABLENAME';

           SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='TABLENAME';

           找到SYS_C0091946,删掉即可:ALTER TABLE TABLENAME DROP CONSTRAINT SYS_C0091946

  • 相关阅读:
    为表增加列属性方法探究
    细聊冗余表数据一致性
    缓存架构设计细节二三事
    缓存与数据库一致性保证
    MySQL批量SQL插入性能优化
    Codeforces 1150
    Codeforces 1155
    Codeforces 331D
    Windows & Ubuntu Vscode 配置c++环境
    后缀数组
  • 原文地址:https://www.cnblogs.com/Ryan-Fei/p/13959999.html
Copyright © 2011-2022 走看看