首页 > 数据库 >Oracle 主键冲突报错踩坑-- "ORA-00001: 违反唯一约束条件 "

Oracle 主键冲突报错踩坑-- "ORA-00001: 违反唯一约束条件 "

时间:2023-07-18 15:23:38浏览次数:43  
标签:CName -- 零宽 空格符 报错 建投惠享 主键 入库

根本原因

因为特殊字符存在导致的主键冲突报错

细节分析

前提

oracle中存在一张table,table中存在字段 CName(nvarchar),且该字段为唯一主键;

具体
  1. 现有一条数据需要入库,内容如下 '中信建投惠享债券型证券投资基金​' (包含零宽空格符)直接根据这个字段值查询数据库 值是不存在的
 select *  from tablename where CName='中信建投惠享债券型证券投资基金​'
  1. 查询数据库发现实际值为 '中信建投惠享债券型证券投资基金' (不包含零宽空格符) 程序判断数据不存在,但是入库时报错主键冲突

  2. 1 2中内容肉眼看着是相同的,实际上1的内容中包含 Unicode零宽空格字符 该字符常用编辑器查看,是不可见,但可通过编码来辨别 如下图

当然直接通过程序判断也是可以的

4.删除数据库中无特殊符号的数据,重新入库,入库正常

5.但是这里还要一个坑,虽然包含特殊符号的数据正常入库 但是使用包含特殊字符的内容直接查 数据是空的,使用无特殊字符的内容查询 就可以了

 select *  from tablename where CName='中信建投惠享债券型证券投资基金​' (包含零宽空格符)
 select *  from tablename where CName='中信建投惠享债券型证券投资基金' (不包含零宽空格符)

标签:CName,--,零宽,空格符,报错,建投惠享,主键,入库
From: https://www.cnblogs.com/Alicia-meng/p/17563096.html

相关文章

  • 个人微信开发API,微信机器人
    ##个人微信开发API微信个人号二次开发,基于API开发可以有很多功能模块各种知名SCRM系统、客服平台都是根据此API二次开发的。 ##好友管理:添加好友、删除好友、修改备注、创建标签、获取好友列表、检测僵尸粉设置个人头像同意添加好友获取好友的信息获取自己的微信获取自......
  • CURL常用参数
    CURLcurl-XPOST-i'http://10.25.5.36/service/api/v1/province/registerSourceQuery'-H"Content-Type:application/json"-d'{"messageHeader":{"accessAccount":"43198521900","sign":"43198......
  • 剑指offer--链表
    第6题:链表中倒数最后k个结点题目描述输入一个长度为n的链表,设链表中的元素的值为\(a_i\),返回该链表中的第k个结点。如果该链表长度小于\(k\),请返回一个长度为0的链表思路双指针step1:准备一个快指针,从链表头开始,在链表上先走k步。step2:准备慢指针指向原始链表头,代......
  • antd+vue3 tree-select 组件库 筛选结果不正确的问题
    第一次遇到这种带搜索框的下拉树状列表搜索关键字的时候出现我不想要的结果。我感觉组件它只是搜索一级列表而没有搜索二级列表,然后一节列表把它整个的二级列表带出来了。二级列表里边包含搜索关键字的所有item才是我想要的。相关代码:1<!--页面名称-->2<div......
  • Hive分区/分桶
    分区hive的分区的是针对于数据库的分区,将原来的数据(有规律的数据)分为多个区域,数据和表的信息是不会有变化的,但是会增加namenode的压力分区的目的是提升查询效率,将原来的文件进行多层次的管理分区有三种,静态分区,动态分区,混合分区关键字:partitionedby(字段)分桶分......
  • SSD_核心技术:FTL(2)映射管理
    映射种类根据映射粒度的不同,FTL映射有基于块的映射,有基于页的映射,还有混合映射(HybridMapping)。块映射块映射中,以闪存的块为映射粒度,一个用户逻辑块可以映射到任意一个闪存物理块,但是映射前后,每个页在块中的偏移保持不变。由于映射表只需存储块的映射,因此存储映射表所需空间小......
  • 如何在word中输入定义符号(即等号上面一个三角形)
    方法如下:1、打开word。2、点击插入—》符号—》其它符号。 3、选择字体:MSUIGothic,子集:数字运算符。 4、选择符号,插入,完成。......
  • ffmpeg常用命令
    常用参数:主要参数:-i设定输入流-f设定输出格式-ss开始时间-t时间长度视频参数:-vframes设置要输出的视频帧数-b设定视频码率,默认为200Kbit/s-b:v视频码率-r设定帧速率,默认为25-s设定画面的宽与高-aspect设定画面的比例-vn不处理视频-vcodec设定视频编......
  • 用Python操控斑马打印机的技术总结
    前言由于之前产品打印的标签为人工输入,可能存在信息错误且不适合大批量操作。所以我进行了前期的研究和总结,完成了任务,并这里做下技术总结,方便后面的人进行开发。技术总结斑马打印机的坑官网:http://www.zebra.gd.cn/现在主流的工业打印机都支持二次开发的,要么有自己的一套语......
  • C# 循环对象,获取对象每个属性的名、值、类型
    varcurData=newStudent();foreach(System.Reflection.PropertyInfopincurData.GetType().GetProperties()){if(p.PropertyType.FullName==typeof(decimal).FullName){ls.Add((decimal)p.GetValue(curDat......