dimp导入时提示违法唯一约束
用户将生产环境导入测试环境时,有个表无法导入,提示违法唯一约束,错误截图如下
查看主键

根据主键查下是否有重复数据

其他参数如:COMPATIBLE_MODE,大小写是否敏感,字符集类型,数据页大小源端和目的端都一致,采取主键冲突的处理方式[IGNORE|OVERWRITE|OVERWRITE2],及需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE] 等尝试依旧报错。最后发现是源端和目的端字符串结尾空格填充参数BLANK_PAD_MODE不一致导致
问题复现
初始化两个实例,一个设置字符串结尾空格填充参数设置为兼容Oracle
./dminit path=/data page_size=32 db_name=dmdb PORT_NUM=5237 BLANK_PAD_MODE=1
./dminit path=/data page_size=32
--创建一个表test,字段a1,a2,a3 组成联合主键
create table test(a1 varchar(10),a2 varchar(10),a3 varchar(10) ,primary key(a1,a2,a3));
--插入如下数据
insert into test values ('111','111','111');
insert into test values ('111','222','222');
insert into test values ('111','222 ','222');
insert into test values ('111','222','333');
commit;
使用dexp将表test导出

将上面导入的test表导入到另外一个数据库上面

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了