【问题标题】:Derby DB adding white-spaces to CHAR valuesDerby DB 向 CHAR 值添加空格
【发布时间】:2015-03-02 15:11:00
【问题描述】:

我正在使用 derby 数据库构建桌面应用程序...在将数据插入到包含多个数据类型为“CHAR (10)”的列的表中时,数据库会在值中添加空格。例如。我添加了一个由 5 个字母组成的名称“Derby”,其余 5 个字母被添加为空格。当我从数据库中检索这些值时,问题就开始了,这些空白也与实际值一起检索。 “VARCHAR”数据类型不会发生这种情况。如何避免这种情况?

【问题讨论】:

    标签: database netbeans derby


    【解决方案1】:

    这就是CHAR 数据类型在 SQL 标准中的定义方式。 Derby 只是遵循这些规则 as documented in the manual(基本上每个 DBMS 都遵守这些规则,但在某些情况下您可以禁用它)

    您无法“避免”这种情况 - 如果您不想要该填充,只需使用 VARCHAR

    在我个人看来:CHAR 数据类型现在基本上没用了。在几乎所有 DBMS 中,VARCHAR 效率更高(因为它需要更少的存储空间)并且不会受到这种必需但烦人的填充行为的影响。

    【讨论】:

    • 感谢您提供的信息...现在我正在使用 java 中定义的 trim 函数同时检索值...这有点帮助!
    • @Frostem:使用trim() 是一个丑陋的解决方法。您应该改用正确的数据类型 (varchar)。停止使用char(对于任何 DBMS 都是如此)
    • 在我目前的项目中,大部分数据库工作已经完成。现在改变任何东西都会让我有很多工作要做。下次我会考虑你对 VARCHAR 的建议!
    • 现在最好改变它。解决此问题所需的工作不会减少,随着时间的推移会越来越多。
    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多