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

Oracle BizTalk WCF自定义“;引发错误ORA-29275:部分多字节字符,oracle,wcf,biztalk,Oracle,Wcf,Biztalk,我有一个接口,它是一个简单的receiveport映射sendport。receiveport是add generated items查询的结果。查询只是从数据库中获取一些adres数据。此数据确实包含“外来”字母,但当我在OracleSQLDeveloper上运行查询时,它工作正常(给我12800行) BizTalk运行查询时,它会给出一个ORA,我认为这是db给BizTalk的一个错误。我错了吗 我到底要在哪里解决这个问题?怎么做?我是否需要找出数据库上使用的字符集并在查询中使用转换?这是来

我有一个接口,它是一个简单的receiveport映射sendport。receiveport是add generated items查询的结果。查询只是从数据库中获取一些adres数据。此数据确实包含“外来”字母,但当我在OracleSQLDeveloper上运行查询时,它工作正常(给我12800行)

BizTalk运行查询时,它会给出一个ORA,我认为这是db给BizTalk的一个错误。我错了吗


我到底要在哪里解决这个问题?怎么做?我是否需要找出数据库上使用的字符集并在查询中使用转换?

这是来自Oracle的错误-很可能是由于BizTalk或WCF适配器造成的。它表示您的Oracle数据库中有一些损坏的数据。您可能不会在SQL Developer中看到错误,因为默认情况下,SQL Developer只返回前50行(直到您实际向下滚动超过它们)

我会使用这样一种策略:尝试查找错误数据(例如,使用
ROWNUM
遍历行,直到找到出错的行)-您可以在SQL Developer中模拟这种情况,只需向下滚动直到得到错误(我认为)。如果可以修复数据,请修复它-如果数据是由另一个源放在那里的,则必须让该源停止将无效字符放在那里,或者必须转换/合并导致问题的列,例如:

 SELECT problem_column || '' FROM table


例如,您可以尝试
选择CONVERT(列名'UTF8','US7ASCII')

我已经使用CTRL+A来获取所有行,并且在SQL Developer中加载数据时没有错误。我如何知道在转换中使用什么字符集?我会尝试使用
CONVERT(COLUMN_NAME,'UTF8','US7ASCII')
。但是,在SQL Developer中可以正确加载数据似乎很奇怪。。这肯定是来自Oracle的错误,不应该特定于适配器。我真的很想看看我是否可以在适配器之外复制它……它在sql开发人员和用户使用的java应用程序(我自己不是专家)中工作得很好。使用转换确实解决了问题,因此我将不得不延迟错误的再现。不确定是否要在答案中添加特定的COnvert命令。很高兴听到。也许SQLDeveloper会自动地进行转换或者其他什么,但不是很确定。可能会尝试系统地从查询中删除这些内容,直到您分离出哪个列,但是如果它是wokring,那么它就可以工作了。
SELECT CONVERT(COLUMN NAME,'NLS_CHARACTERSET','NLS_CHARACTERSET') FROM table