【问题标题】:Get column value length, not column max length of value获取列值长度,而不是列值的最大长度
【发布时间】:2012-10-15 09:39:35
【问题描述】:

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

我的 (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

【问题讨论】:

  • 您的列 TYP 是 CHAR 数据类型吗? CHAR 是固定长度。如果它是 VARCHAR2,您的查询应该可以工作。
  • @oraNob 很好——无论如何,trim() 方法在使用 CHAR 时也有效。

标签: oracle string-length


【解决方案1】:

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

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

改为。

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

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2017-06-30
    • 2016-07-02
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多