Typy danych
W Oracle jest bardzo wiele typów danych. W poniższym zestawieniu prezentuję tylko te najpowszechniejsze.
Typ numeryczny
Number(P,S)
Ten typ może przechowywać typy rzeczywiste oraz całkowite. P oznacza ilość cyfr w całej liczbie, natomiast S oznacza ilość miejsc po przecinku.
Typy znakowe
Char(L)
Przechowuje stałą ilość znaków zadeklarowaną jako parametr L. L musi być mniejsze niż 256. Przykładowo jeśli do kolumny typu Char(100) wstawimy pojedynczą literę, przechowywane będzie 100 znaków. Wartość zostanie uzupełniona do 100 spacjami.
Varchar2(L)
Dane tego typu zajmują dokładnie tyle miejsca ile zostanie przypisanych znaków. Parametr L określa maksymalną ilość znaków. L musi być mniejsze od 4000. Porównaj własności typu Char oraz Varchar2. Ze względu na optymalizację, dane tekstowe zazwyczaj przechowuje się w typie Varchar2. Typ Char istnieje w najnowszych wersjach Oracle ze względu na wsteczną kompatybilność. W użytku codziennym używa się typu Char raczej sporadycznie i tylko wtedy gdy zachodzi taka konieczność.
Long
Posiada własności takie jak VARCHAR2, jednak może przechowywać do 2 GB tekstu.
Inne typy
Raw(L)
Typ zachowujący się jak CHAR(L), jednak służy do przechowywania danych binarnych.
Long raw
Odpowiednik typu Long, tylko do przechowywania danych binarnych.
Date
Przechowuje informacje o wieku, roku, miesiącu, dniu, godzinie, minucie oraz sekundzie.
Timestamp(L)
Typ zbliżony do Date. Przechowuje dodatkowo do L miejsc po przecinku sekundy. L nie może być większe niż 9.
BLOB, CLOB, BFILE
Służą do przechowywania bardzo dużych plików. Ze względu na ich wysoką wydajność zaleca się korzystanie z tych typów zamiast typów LONG i LONG RAW.
Ten temat omawiam na poniższych szkoleniach:
• Podstawy Oracle SQL
• Podstawy SQL i PL/SQL
Możesz w nich uczestniczyć, a jako czytelnik tego bloga otrzymasz 10% zniżki - poinformuj o tym fakcie konsultanta.
Co znaczy, że typ timestamp jest "zbliżony" do date?
OdpowiedzUsuńTo znaczy że oba przechowują datę i czas, z tym że timestamp może jeszcze przechowywać czas z dokładnością do 9 miejsca po przecinku sekundy :)
OdpowiedzUsuńA jakiego typu danych powinnam użyć jeśli chcę wskazać upływ czasu? Chodzi o podanie czasu w dniach/godzinach - w innej tabeli miałabym podaną datę rejestracji sprawy/wniosku, a w tej max czas analizy sprawy. Wynikiem miałaby być max data realizacji sprawy (lub zamiennie czas pozostały do realizacji).
OdpowiedzUsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuń