18

如何获得列中值的实际长度?

我的(oracle)sql 命令返回可以插入列中的值的最大长度,而不是值的实际长度。

如何解决这个问题?

SQL> SELECT typ, length(t1.typ)
     FROM AUTA_VIEW t1;

TYP        LENGTH(T1.TYP)
---------- --------------
BMW                    10
BMW                    10
BMW                    10
Ferrari                10
BMW                    10
Audi                   10
Audi                   10
Audi                   10
Ferrari                10
Ferrari                10
Mercedes               10
4

1 回答 1

27

LENGTH()确实返回字符串长度(刚刚验证)。我想你的数据是用空格填充的 - 试试

SELECT typ, LENGTH(TRIM(t1.typ))
FROM AUTA_VIEW t1;

反而。

如前所述OraNob,另一个原因可能CHAR是在这种情况下使用LENGTH()也会返回列宽,而不是字符串长度。但是,该TRIM()方法也适用于这种情况。

于 2012-10-25T08:36:54.473 回答