2012-10-25 11 views
11

Jak uzyskać faktyczną długość wartości w kolumnie?Uzyskaj wartość długości kolumny, a nie kolumnę maks. Długość wartości

Polecenie Moje (wyrocznia) sql zwraca maksymalną długość wartości, która może zostać wstawiona do kolumny zamiast rzeczywistej długości wartości.

Jak to naprawić?

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 
+3

Czy Twoja kolumna TYP jest typem danych CHAR? CHAR ma stałą długość. Jeśli jest to VARCHAR2, zapytanie powinno działać. – OraNob

+0

@oraNob Dobry połów - w każdym przypadku podejście trim() działa również podczas używania CHAR. –

Odpowiedz

21

LENGTH() nie zwróci długość ciągu (tylko niezweryfikowany). Przypuszczam, że twoje dane są wypełnione pustymi miejscami - zamiast tego spróbuj

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

.

Jako wspomniana , inną przyczyną może być użycie CHAR, w którym to przypadku LENGTH() zwróci również szerokość kolumny, a nie długość łańcucha. Jednak w tym przypadku działa również podejście TRIM().

Powiązane problemy