web-dev-qa-db-fra.com

Obtenir la longueur de la valeur de la colonne, pas la longueur maximale de la colonne de la valeur

Comment obtenir la longueur réelle de la valeur dans la colonne?

Ma commande (Oracle) sql renvoie la longueur maximale de la valeur qui peut être insérée dans la colonne au lieu de la longueur réelle de la valeur.

Comment régler ceci?

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
13
Buksy

LENGTH() retourne la longueur de la chaîne (juste vérifiée). Je suppose que vos données sont remplies de blancs - essayez

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

au lieu.

Comme OraNob l'a mentionné, une autre cause pourrait être que CHAR est utilisé, auquel cas LENGTH() retournerait également la largeur de la colonne, pas la longueur de la chaîne. Cependant, l'approche TRIM() fonctionne également dans ce cas.

23
Andreas Fester