LOB to w rzeczywistości cztery różne typy danych:CLOB dla LONG i BLOB dla LONG RAW, plus BFILE i XMLType. Firma Oracle wprowadziła te typy w latach 90., ponieważ LONG (i LONG RAW) to Teh Suck! i strasznie ciężko się z nim pracuje. Nie ma powodu, aby używać LONG intsead LOB, jeśli wersja bazy danych to 8.0 lub wyższa.
Dlaczego więc nadal mamy LONG?
LONG i CLOB to prymitywne typy danych. Tak więc, chociaż teoretycznie jest prawdą, że Oracle mógł zmienić LONG, aby w praktyce mieć „dodatkowe funkcje specjalne” CLOB, które miałyby katastrofalny wpływ na aktualizację baz danych do 8.0 (wersji, która wprowadziła LOB).
Stwierdzenie, że katastroficzne jest być może hiperboliczne, ale faktem jest, że modernizacja funkcji w stylu CLOB do LONG oznacza zmianę typów danych . Tak więc aktualizacja musiałaby obejmować automatyczną konwersję danych. Poza tym prawdopodobnie istnieje wiele rodzajów rutyn niskiego poziomu, których zachowanie wymagałoby zmiany. To tylko ogromny wektor do uszkodzenia danych. Dużo prostsze (a co za tym idzie bezpieczniejsze) jest wprowadzenie nowego typu danych i pozwolenie poszczególnym witrynom na obsługę migracji.
Oracle wycofało LONG od wersji 8.0 i zapewniło mechanizmy konwersji LONG do CLOB, więc w idealnym świecie wszyscy ruszyliby dalej, a Oracle mogłoby usunąć typy danych LONG z bazy danych. Jednak w rzeczywistości wiele sklepów nadal używa LONGów i zbyt wiele by się zepsuło.
Więc Oracle musi je zatrzymać. Skalę problemu można wywnioskować z faktu, że Oracle nadal używa samego LONG w słowniku danych (takich jak USER_/ALL_/DBA_VIEWS).