从数据库返回时,字符串会附加特殊字符

时间:2009-08-21 09:51:08

标签: oracle nhibernate

我正在使用NHibernate查询Oracle 8i数据库。问题是返回的对象中的所有字符串都带有特殊字符。例如,

CUSTOMER,ONE�������

nhibernate字段类型为AnsiString,Oracle数据类型为CHAR(20),字符集为CHAR_CS。我对甲骨文来说是全新的,所以我没有任何线索:(

2 个答案:

答案 0 :(得分:4)

CHAR(20)表示根据需要填充字段,长度恰好为20个字符。填充字符是空白。

如果填充字符显示为问号,则字符集设置中的某处必定存在问题。您可以找到有关问题的更多信息here

这里你需要修剪返回的字符串,或者更好地移动到VARCHAR2(20)。

答案 1 :(得分:0)

我找不到适合这个问题的解决方案,但是将nhibernate驱动程序从'OracleClientDriver'更改为'OleDbDriver'解决了这个问题。如果有人知道如何正确解决这个问题,请告诉我,因为我可能不喜欢使用OldDbDriver访问Oracle,因为可能存在兼容性问题。