OGG-03533

2018-02-12 11:21:49  ERROR   OGG-03533  Conversion from character set CESU-8 of source column BANK_ACCOUNT_NUM_HASH1 to character se
t UTF-8 of target column BANK_ACCOUNT_NUM_HASH1 failed because the source column contains a character '98' at offset 2 that is not a

vailable in the target character set.

遇到这种报错,翻开官方文档

Applies to:
Oracle GoldenGate Application Adapters - Version 12.3 to 12.3 [Release 12.3]
Information in this document applies to any platform.
Symptoms
After upgrading OGG Application Adapter from version 12.1.0.1 to version 12.2.0.1.5 and replace EXTRACT with REPLICAT process to send message to JMS queue.
Replicat BMP1101 abends with ERROR OGG-03533 Conversion from character set CESU-8 of source column H1IT_NOTE to character set UTF-16 of target column H1IT_NOTE failed because the source column contains
a character 'e8' at offset 13 that is not available in the target character set.

Extract in the previous version 12.1.2.1 processes the same data with no error.
Changes
Upgraded to 12.2 and used Replicate instead of extract pump
Cause
The 0xe8 and 0xf9 characters which was expected to map to è and ù, respectively, … are written in the trail NOT in CESU-8 (UTF-8 compatible) mode. They are written as one byte of a seemingly Latin1 character set. This is incorrect. Replicat doesn’t like this because it tries to confirm to the UTF-8 that is advertised by the database itself.
Extract does not, so extract will give the data as is (like as shown in trail). Basically, replicate adds some validation to ensure the data is correct.
The extract in this case is lucky, the reason is, the data is actually a Latin1 data. And our JNI function which sends the data to the Java supports both Latin1 and UTF8, and basically the method will return a Java String which is in Unicode. However, if the extract is dealing with “other” than Latin1, then we can expect that the data will not be intact all the way to the JMS.
In this case, replicate is trying to make sure we detect bad data early, and act upon it.
Solution
1) Remove goldengate.userexit.outputencoding=8 from properties file (this is for extract only)
2) Add parameter SOURCECHARSET OVERRIDE ISO-8859-1 to the replicat parameter
3) Restart the replicate.


解决办法:

只需要在报此错的目标端添加参数

SOURCECHARSET OVERRIDE ISO-8859-1

即解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值