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



我有一个接口,这是一个简单的接收port映射sendport。接收港是添加生成项目查询的结果。查询只是从数据库中获取了一些ADRES数据。该数据确实包含"外国"字母,但是当我在Oracle SQL开发人员上运行查询时,它可以正常工作(给我12800行)。

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

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

这是来自Oracle的错误 - 不太可能是由于BizTalk或WCF适配器造成的。它表明您的Oracle DB中有一些损坏的数据。您可能不会在SQL Developer中遇到错误,因为SQL Developer默认情况下仅返回第一个〜50行(直到您实际向下向下滚动它们)。

我会使用这样的策略:http://vibhork.blogspot.com/2011/02/fix-of-ora-29275-partial-multibyte.html尝试找到不良数据(例如,通过使用ROWNUM的行直到找到错误的行) - 您可以通过向下滚动直到收到错误(我认为)来模拟SQL Developer中。如果您可以修复数据,请修复它 - 如果数据是由另一个来源放置的,则您要么必须让该来源停止将无效的字符放入其中,要么必须转换/cont/concat列列(S)那就是()引起问题,例如:

 SELECT problem_column || '' FROM table

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

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

最新更新