当前位置: 首页 > 知识库问答 >
问题:

带JDBC的Oracle字符列和尾随空格

姬昀
2023-03-14
<bean id="dataSourcePool" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.user}" />
    <property name="password" value="${jdbc.password}" />
    <property name="connectionProperties" value="fixedString=true;" />
</bean>

我尝试使用OracleDataSource而不是commons,以防万一,但没有用。

有人知道我做错了什么吗?

多谢了。

Map<String, Object> parameters = new HashMap<>();
parameters.put("newCharParemeter", "hello");
namedParameterJdbcTemplate.query(sql, parameters, new MyMapper());

如果我将前面的代码修改为:

Map<String, Object> parameters = new HashMap<>();
parameters.put("newCharParemeter", new SqlParameterValue(OracleTypes.FIXED_CHAR, "hello"));
namedParameterJdbcTemplate.query(sql, parameters, new MyMapper());

然后,由于Spring调用PreparedStatement.setObject,由于使用了Fixed_Char类型,删除了尾随空格,所以所有工作都按预期进行。

共有1个答案

胡向阳
2023-03-14

尝试:

<property name="connectionProperties" value="fixedString='true';" />

<property name="connectionProperties">
    <props>
        <prop key="fixedString">true</prop>
    </props>
</property>

但最好的选择可能是将数据库中的所有CHAR列转换为VARCHAR。如果您在oracle中使用。字符(2)你必须在那里插入2个字符,比较2个字符等。

 类似资料:
  • 问题内容: 是否有一种方便的方法来从Java字符串中剥离任何前导或尾随空格? 就像是: 结果: 将替换keep和this之间的空间。 问题答案: 你可以尝试trim()方法。

  • 我试图从字符串中删除所有尾随空格和句点,以便如果我使用以下示例之一: 或者 他们最终会成为: 我知道diddy luck是关于的,但我在这里找到了一个删除尾部空白的函数: 我尝试修改以包含句点,但它仍然只删除尾随的空白字符: 谁能告诉我这是怎么做到的,也许能解释一下我用的正则表达式?

  • 网页上有如下链接: 概述 我正在JavaEclipse下用selenium编写一个自动化脚本,希望单击缓存设置选项。有人能帮忙吗?我知道这很简单,但我是这个世界上的新手。我能够自动执行以前的步骤,直到来到这个网页,现在卡在点击缓存设置。 HTML代码段: 我尝试过一些东西,但都没有成功。

  • 问题内容: 我正在尝试查找某个列是否需要其功能。 我如何找出表中的此列是否包含在实际数据之前或之后具有空格的记录。 问题答案: 您可以使用函数本身(不是最有效但最准确的)来检查它: 尽管如果要检查然后转身进行修剪,则可能首先需要这样做,如下所示:

  • 问题内容: 使用Oracle 10.2.0.3 JDBC驱动程序从Oracle 10g中保存和检索欧元字符时,我们遇到了欧元字符问题。仅在Linux下运行JUnit测试期间才会出现此问题。保存后从数据库返回的欧元字符总计被破坏。Oracle已配置为使用字符集“ WE8MSWIN1252”。难道Linux无法使用此字符集吗? 问题答案: 这不是Linux的事情。这是jdbc驱动程序的检索代码中的一个

  • 问题内容: 我很难尝试将.strip与以下代码行结合使用。 谢谢您的帮助。 问题答案: 您可以使用strip()删除尾随和前导空格。 注意:内部空间被保留