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 に答える