- 最后登录
- 2014-4-1
- 在线时间
- 42 小时
- 威望
- 62
- 金钱
- 552
- 注册时间
- 2012-2-24
- 阅读权限
- 50
- 帖子
- 104
- 精华
- 0
- 积分
- 62
- UID
- 261
|
1#
发表于 2012-5-15 16:45:40
|
查看: 6518 |
回复: 3
一个测试库,一个生产库。version都是11.1.0.7.0
测试库的NLS_NCHAR_CHARACTERSET 与生产库的不一样。测试是UTF8 生产是:AL16UTF16
下面的sql:
SELECT REPLACE(WMSYS.WM_CONCAT(CC.DESCRIPTION), ',', ',') DESCRIPTION,
REPLACE(WMSYS.WM_CONCAT(CC.ENGLISH_DESC), ',', ',') ENG_DES
FROM (SELECT AA.DESCRIPTION, AA.ENGLISH_DESC
FROM COVERAGE_MASTER AA
JOIN (SELECT COLUMN_VALUE FROM TABLE(SYSPLITDELIMITER('GP', ','))) BB ON TRIM(AA.COVERAGE_CODE) =
BB.COLUMN_VALUE) CC
在测试库查询正常,在生产查询是乱码。生产的数据是通过在测试通过后,再添加到生产线的。
COVERAGE_MASTER表的信息
COVERAGE_CODE NOT NULL CHAR(15)
DESCRIPTION NOT NULL NVARCHAR2(100
ACTIVE_FLAG NOT NULL CHAR(1)
USER_CODE NOT NULL VARCHAR2(30)
LASTEDIT_DATE NOT NULL DATE
SKIP_TO_40 NOT NULL VARCHAR2(1)
COVCATG NOT NULL VARCHAR2(2)
USAGE NOT NULL NUMBER(7)
REFERRAL_VALIDITY NUMBER(3)
ENGLISH_DESC VARCHAR2(100)
EDCMAX_VALUE NUMBER(15,2)
PREAUTH_ALERT_VALUE NUMBER(15,2)
AMT_INCURRED_ALERT_VALUE NUMBER(15,2)
VISITATION_ALERT_VALUE NUMBER(8)
INSERT_BY VARCHAR2(30)
INSERT_DATE DATE
但是在生产上执行
SELECT COLUMN_VALUE FROM TABLE(SYSPLITDELIMITER('GP', ','))) BB ON TRIM(AA.COVERAGE_CODE) =
BB.COLUMN_VALUE
是没有乱码的。为什么通过 REPLACE(WMSYS.WM_CONCAT等函数转换后就出现乱码了?跟国家字符集有关系吗?
如果有关系,我如何修改测试库的国家字符集,并且库里的数据不受影响。 |
|