检索CHAR值时最后有多余的空格

时间:2010-12-31 11:08:12

标签: java oracle char ibatis spaces

我使用的是ibatis和oracle 10. jdbc驱动程序是oracle.jdbc.driver.OracleDriver。当我从表中检索数据时,我发现附加了两个空格''。我们说列ACTIVE_IND CHAR(1),检索的数据是'A'。

请注意,所有CHAR字段都会发生这种情况。没有额外的空格总是CHAR长度的两倍。例如,如果有一列CHAR(14),则末尾没有多余的空格是28。

仅在系统测试环境中发生这种情况。在我们的本地桌面中,使用相同的ojdbc14.jar和相同的代码,我们没有获得任何额外的空格。

我认为系统测试环境中唯一不同的是数据库。它与某些字符编码有关吗?我们在数据库中有一些配置来改变吗?

2 个答案:

答案 0 :(得分:2)

这听起来很像字符编码问题。你检查了吗

  1. 每种情况下的Oracle数据库配置
  2. 您的应用为每个环境运行的字符编码是什么(您可以使用-Dfile.encoding=UTF8或类似方式对其进行配置 - 我强烈建议您这样做)

答案 1 :(得分:0)

无法从您提供的信息中完全确定出现了什么问题。就列的编码而言,它受COLLATION SETTING的影响。您可以查看以下链接以获取更多信息:http://www.lessanvaezi.com/collation-in-oracle-using-nls_sort/