麻烦大侠们帮看看,怎么回事
问题描述:F_RACK_INFO_CODE是b$f_rack_info表code字段的唯一约束。
在过程中对该表执行插入的时候提示(ORA-00001: 违反唯一约束条件),但是我通过查看下述语句查看没有任何重复的code:
select code from b$f_rack_info having count(code)>1 group by code
而且插入的语句我直接在plsql窗口可以执行插入,这是为什么?
插入的语句:
INSERT /*+append*/
INTO b$f_rack_info
(cnt_box_id,g3e_id,g3e_fno,g3e_fid,g3e_cno,g3e_cid,name,code,code_in97,totalcapacity,height,rackremark,district_id)
SELECT cnt_box_id,f_rack_info_seq.nextval,25410,g3e_fid,25698,1,cnt_box_name,cnt_box_no,alias,capacity,height,notes,pkg_public.f_getdistinctid(region_name,'')
FROM (SELECT row_number() over(PARTITION BY g3e_fid ORDER BY g3e_fid, edite desc) r,
a.*
FROM itf_zytb_frack a
WHERE NOT EXISTS
(SELECT 1
FROM b$f_rack_info
WHERE G3E_FID = a.G3E_FID)
AND a.processtype IN ('UPDATE','INSERT','DELETE')) d
WHERE d.r=1
AND d.processtype <> 'DELETE'