Oracl查询报错:ORA-29275: 部分多字节字符

报错描述

--使用oracl的sql查询时候,此sql无误:
                        SELECT DISTINCT MS_BRDA.MZHM           as patientId,
						MS_BRDA.BRXM           as name,
						CASE
							WHEN MS_BRDA.BRXB = 1 THEN '男'
							WHEN MS_BRDA.BRXB = 2 THEN '女'
							ELSE '未知'
							END                AS gender,
						MS_GHMX.GHSJ           as arrivalTime,
						MS_BRDA.CSNY           as birthday,
						MS_BRDA.HKDZ           as address,
						MS_GHMX.KSDM as deptCode
		FROM MS_BRDA@PORTAL56_HIS
				 LEFT JOIN MS_GHMX@PORTAL56_HIS ON MS_GHMX.BRID = MS_BRDA.BRID
--但是关联其他表就会报错(ORA-29275: 部分多字节字符):
                        SELECT DISTINCT MS_BRDA.MZHM           as patientId,
						MS_BRDA.BRXM           as name,
						CASE
							WHEN MS_BRDA.BRXB = 1 THEN '男'
							WHEN MS_BRDA.BRXB = 2 THEN '女'
							ELSE '未知'
							END                AS gender,
						MS_GHMX.GHSJ           as arrivalTime,
						MS_BRDA.CSNY           as birthday,
						MS_BRDA.HKDZ           as address,
						MS_GHMX.KSDM as deptCode
		FROM MS_BRDA@PORTAL56_HIS
				 LEFT JOIN MS_GHMX@PORTAL56_HIS ON MS_GHMX.BRID = MS_BRDA.BRID
				 LEFT JOIN ECIS_YJFZ ON MS_BRDA.BRID = ECIS_YJFZ.BRID

排查思路

定位问题为字符格式不一致导致

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
--his是ZHS16GBK
--ecis是AL32UTF8

猜你喜欢

转载自blog.csdn.net/qq_46135702/article/details/141955951