获取列值长度,而不是列的最大值

时间:2012-10-25 08:31:35

标签: oracle string-length

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

My(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

1 个答案:

答案 0 :(得分:23)

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

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

代替。

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