问题背景: 两个环境,同一条sql,一个执行成功,一个报错"大字段数据不完整";实例日志中有告警
2026-04-17 16:36:32.332 [WARNING] database P0000752153 T0000000000000070311 A empty data buffer was send to set lob data!!! Table: TPPF_DZXY, Dest lob now len: 21811
INSERT INTO ppf.tppf_dzxy (ID,XYMC,ZT,BBH,SJY,NRGS,XYNR,XYSCFS,XYLXDM)
SELECT
PPF.SEQ_TPPF_DZXY.NEXTVAL,
a.name AS xymc,
'2' AS zt,
a.VERSION AS bbh,
'' AS sjy,
'2' AS nrgs,
a.CONTENT AS xynr,
'1' AS xyscfs,
a.CONTRACT_NO AS xylxdm
FROM ppfhis.econtract_dict a
-- 【关键修复】NOT IN 改为 NOT EXISTS,避开 DISTINCT + 大字段问题
WHERE NOT EXISTS (
SELECT 1
FROM ppfhis.econtract_signed b
JOIN ppfhis.econtract_signed_msg c
ON b.ID = c.SIGNED_ID
WHERE b.ECONTRACT_NO = a.CONTRACT_NO
)
-- 【关键修复】用 ROWID 去重,替代 GROUP BY,避开大字段分组
AND ROWID IN (
SELECT MAX(ROWID)
FROM ppfhis.econtract_dict
GROUP BY name, VERSION, CONTRACT_NO
);
SQL> desc ppfhis.econtract_dict
行号 NAME TYPE$ NULLABLE
---------- ----------- ----------------- --------
1 ID INTEGER N
2 CONTRACT_NO VARCHAR(10 CHAR) Y
3 NAME VARCHAR(255 CHAR) Y
4 CONTENT CLOB Y
5 DIGEST VARCHAR(32 CHAR) Y
6 TYPE INTEGER Y
7 VERSION INTEGER Y
8 DIGITAL INTEGER Y
SQL> desc ppf.tppf_dzxy
行号 NAME TYPE$ NULLABLE
---------- -------- ------------ --------
1 ID DEC(16) N
2 XYMC VARCHAR(180) Y
3 XYFL DEC(12) Y
4 XYLX DEC(16) Y
5 ZT DEC(12) Y
6 BBH VARCHAR(20) Y
7 FILEPATH VARCHAR(100) Y
8 RDCS CLOB Y
9 SJY CLOB Y
10 CS_DATA CLOB Y
11 YYCL VARCHAR(300) Y
行号 NAME TYPE$ NULLABLE
---------- ------ ------------ --------
12 NRGS DEC(12) Y
13 XYNR CLOB Y
14 MD5 VARCHAR(256) Y
15 CZR DEC(12) Y
16 CZRQ DEC(8) Y
17 CZSJ CHAR(10) Y
18 SYFW DEC(12) Y
19 XYSCFS DEC(12) Y
20 SFDJCA SMALLINT Y
21 DYFS DEC(12) Y
22 SCDM VARCHAR(32) Y
行号 NAME TYPE$ NULLABLE
---------- ------ ------------- --------
23 XYLXDM VARCHAR(100) Y
24 ISBCXY SMALLINT Y
25 FID DEC(16) Y
26 RDQMWZ CLOB Y
27 SXRQ DEC(8) Y
28 JZRQ DEC(8) Y
29 BCXYSM VARCHAR(1000) Y
30 YXLX DEC(12) Y
31 YDMS DEC(10) Y
32 CDN VARCHAR(256) Y
33 BGRQ DEC(8) Y
行号 NAME TYPE$ NULLABLE
---------- ------------ ------------ --------
34 CPBH VARCHAR(30) Y
35 GSBH VARCHAR(30) Y
36 CPFW DEC(12) Y
37 MBBBH VARCHAR(20) Y
38 YDDD DEC(12) Y
39 MSMBSC DEC(12) Y
40 SYURL VARCHAR(256) Y
41 IMGSYURL VARCHAR(256) Y
42 IMGLISTCOUNT DEC(22) Y
43 SYFLAG DEC(12) Y
44 CLFLAG DEC(12, 6) Y
行号 NAME TYPE$ NULLABLE
---------- ------- ------- --------
45 TXYFLAG DEC(12) Y
思路:
ppf.tppf_dzxy.XYNR和ppfhis.econtract_dict.CONTENT后可以执行成功,锁定报错字段文章
阅读量
获赞
