BizTalk WCF-Custom" 引发错误 ORA-29275: 部分多字节字符

BizTalk WCF-Custom" raised an error ORA-29275: partial multibyte character

我有一个接口,它是一个简单的接收端口映射发送端口。接收端口是添加生成的项目查询的结果。该查询只是从数据库中获取一些地址数据。此数据确实包含 'foreign' 个字母,但是当我 运行 在 Oracle SQL Developer 上查询时,它工作正常(给我 12800 行)。

当 BizTalk 运行 查询时,它给出了一个 ORA,我认为这是数据库给 BizTalk 的错误,我错了吗?

我实际上必须在哪里解决这个问题?如何?我是否需要找出数据库中使用的字符集并在查询中使用转换?

这是来自 Oracle 的错误 - 不太可能是由于 BizTalk 或 WCF 适配器。这表明您的 Oracle 数据库中有一些损坏的数据。您可能不会在 SQL Developer 中收到错误,因为 SQL Developer 默认仅返回前 ~50 行(直到您真正向下滚动过去)。

我会使用这样的策略:http://vibhork.blogspot.com/2011/02/fix-of-ora-29275-partial-multibyte.html 尝试查找错误数据(例如,使用 ROWNUM 翻页直到找到出错的行)- 您可以在 SQL Developer 中模拟,只需向下滚动直到出现错误(我认为)。如果你能修复数据,就修复它——如果数据是由另一个来源放在那里的,你要么必须让那个来源停止在那里放置无效字符,要么你必须 convert/concat 列( s) 是(正在)引起问题,例如:

 SELECT problem_column || '' FROM table

SELECT CONVERT(COLUMN NAME,'NLS_CHARACTERSET','NLS_CHARACTERSET') FROM table

例如,您可以尝试 SELECT CONVERT(COLUMN NAME, 'UTF8', 'US7ASCII')