为什么我无法修剪 CHAR 类型的列?



如标题所示,如果在我的数据库中创建一个表:

创建表TEST(字段字符(20个字符)为空(nologNOCOMPRESSNOCACHE;

插入:

插入TEST(字段)值('TEST -这里是空格- ');提交;

然后运行下面的语句:

UPDATE TEST SET FIELD = TRIM(FIELD);提交;

但是字段仍然有空格,请注意,如果我将数据类型更改为varchar2,它可以工作…有人知道为什么吗?

谢谢!

char为固定宽度数据类型。char(20)的长度永远是20。如果您尝试插入一个较短的字符串,它将用空格填充到字段的固定宽度长度。所以

UPDATE TEST SET FIELD = TRIM(FIELD); 

删除由于trim函数引起的空格,然后将它们添加回来,因为写入的字符串必须正好是20字节长。

实际上,几乎从来没有使用char的情况。你几乎总是用varchar2更好。varchar2是可变长度数据类型,因此数据库不需要在末尾添加空格。

相关内容

  • 没有找到相关文章

最新更新