如标题所示,如果在我的数据库中创建一个表:
创建表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
是可变长度数据类型,因此数据库不需要在末尾添加空格。