Typy danych Oracle PL / SQL: Boolean, Number, Date (przykład)

Spisie treści:

Anonim

Co to są typy danych PL / SQL?

Typ danych jest powiązany z określonym formatem przechowywania i ograniczeniami zakresu. W Oracle każdej wartości lub stałej przypisany jest typ danych.

Zasadniczo określa, w jaki sposób dane są przechowywane, obsługiwane i przetwarzane przez Oracle podczas przechowywania i przetwarzania danych.

Główna różnica między typami danych PL / SQL i SQL polega na tym, że typy danych SQL są ograniczone do kolumny tabeli, podczas gdy typy danych PL / SQL są używane w blokach PL / SQL. Więcej na ten temat w dalszej części samouczka.

Poniżej znajduje się diagram różnych typów danych w PL / SQL

W tym samouczku nauczysz się:

  • CHARACTER Typ danych
  • NUMBER Typ danych
  • BOOLEAN Typ danych
  • DATA Typ danych
  • Typ danych LOB

CHARACTER Typ danych:

Ten typ danych zasadniczo przechowuje znaki alfanumeryczne w formacie ciągów.

Podczas przypisywania ich do typu danych CHARACTER wartości literałów powinny być zawsze ujęte w pojedyncze cudzysłowy.

Ten typ danych znakowych jest dalej klasyfikowany w następujący sposób:

  • CHAR Typ danych (stały rozmiar ciągu)
  • VARCHAR2 Typ danych (zmienny rozmiar ciągu)
  • VARCHAR Typ danych
  • NCHAR (natywny stały rozmiar ciągu)
  • NVARCHAR2 (natywny rozmiar łańcucha zmiennej)
  • LONG i LONG RAW
Typ danych Opis Składnia
ZWĘGLAĆ Ten typ danych przechowuje wartość ciągu, a rozmiar ciągu jest ustalany w momencie deklarowania zmiennej.
  • Oracle byłaby dopełniona spacjami zmienna, gdyby zmienna nie zajmowała całego zadeklarowanego rozmiaru. Dlatego Oracle przydzieli pamięć dla zadeklarowanego rozmiaru, nawet jeśli zmienna nie zajmie jej w pełni.
  • Ograniczenie rozmiaru dla tego typu danych wynosi 1–2000 bajtów.
  • Typ danych CHAR jest bardziej odpowiedni do użycia, gdy kiedykolwiek ustalony rozmiar danych będzie obsługiwany.
grade CHAR;manager CHAR (10):= 'guru99';
Objaśnienie składni:
  • Pierwsza deklaracja deklarowała zmienną „grade” typu danych CHAR o maksymalnym rozmiarze 1 bajtu (wartość domyślna).
  • W drugiej deklaracji zadeklarowano zmienną „manager” typu danych CHAR o maksymalnym rozmiarze 10 i przypisano wartość „guru99”, która ma 6 bajtów. W tym przypadku Oracle przydzieli pamięć 10 bajtów zamiast 6 bajtów.
VARCHAR2 Ten typ danych przechowuje ciąg, ale długość łańcucha nie jest ustalona.
  • Ograniczenie rozmiaru dla tego typu danych wynosi 1-4000 bajtów dla rozmiaru kolumny tabeli i 1-32767 bajtów dla zmiennych.
  • Rozmiar jest definiowany dla każdej zmiennej w momencie deklaracji zmiennej.
  • Ale Oracle przydzieli pamięć dopiero po zdefiniowaniu zmiennej, tj. Oracle weźmie pod uwagę tylko rzeczywistą długość łańcucha, który jest przechowywany w zmiennej w celu przydzielenia pamięci, a nie rozmiar, który został podany dla zmiennej w części deklaracji.
  • Zawsze dobrze jest używać typu danych VARCHAR2 zamiast typu CHAR, aby zoptymalizować wykorzystanie pamięci.
manager VARCHAR2(10) := ‘guru99';
Objaśnienie składni:
  • W powyższej deklaracji deklarowano zmienną „manager” o typie danych VARCHAR2 o maksymalnym rozmiarze 10 i przypisano wartość „guru99” o wielkości 6 bajtów. W tym przypadku Oracle przydzieli pamięć tylko 6 bajtów.
VARCHAR Jest to równoznaczne z typem danych VARCHAR2.
  • Zawsze dobrze jest używać VARCHAR2 zamiast VARCHAR, aby uniknąć zmian w zachowaniu.
manager VARCHAR(10) := ‘guru99';
Objaśnienie składni:
  • W powyższej deklaracji deklarowano zmienną „manager” o typie danych VARCHAR o maksymalnym rozmiarze 10 i przypisano wartość „guru99” o wielkości 6 bajtów. W tym przypadku Oracle przydzieli pamięć tylko 6 bajtów. (Podobny do VARCHAR2)
NCHAR Ten typ danych jest taki sam jak typ danych CHAR, ale zestaw znaków będzie odpowiadał zestawowi znaków narodowych.
  • Ten zestaw znaków można zdefiniować dla sesji za pomocą NLS_PARAMETERS.
  • Zestaw znaków może być UTF16 lub UTF8.
  • Ograniczenie rozmiaru to 1-2000 bajtów.
native NCHAR(10);
Objaśnienie składni:
  • Powyższa deklaracja deklaruje zmienną „native” o typie danych NCHAR o maksymalnym rozmiarze 10.
  • Długość tej zmiennej zależy od (liczby długości) na bajt, zgodnie z definicją w zestawie znaków.
NVARCHAR2 Ten typ danych jest taki sam jak typ danych VARCHAR2, ale zestaw znaków będzie należał do zestawu znaków narodowych.
  • Ten zestaw znaków można zdefiniować dla sesji za pomocą NLS_PARAMETERS.
  • Zestaw znaków może być UTF16 lub UTF8.
  • Ograniczenie rozmiaru to 1-4000 bajtów.
Native var NVARCHAR2(10):='guru99';
Objaśnienie składni:
  • Powyższa deklaracja deklaruje zmienną „Native_var” o typie danych NVARCHAR2 o maksymalnym rozmiarze 10.
LONG i LONGRAW Ten typ danych służy do przechowywania dużego tekstu lub nieprzetworzonych danych do maksymalnego rozmiaru 2 GB.
  • Są one używane głównie w słowniku danych.
  • Typ danych LONG służy do przechowywania danych zestawu znaków, a LONG RAW służy do przechowywania danych w formacie binarnym.
  • Typ danych LONG RAW akceptuje obiekty multimedialne, obrazy itp., Podczas gdy LONG działa tylko w przypadku danych, które mogą być przechowywane przy użyciu zestawu znaków.
Large_text LONG;Large_raw LONG RAW;
Objaśnienie składni:
  • Powyższa deklaracja deklaruje zmienną „Large_text” o typie danych LONG i „Large_raw” o typie danych LONG RAW.
Uwaga: Oracle nie zaleca używania typu danych LONG. Zamiast tego preferowany powinien być typ danych LOB.

NUMBER Typ danych:

Ten typ danych przechowuje liczby stałe lub zmiennoprzecinkowe z dokładnością do 38 cyfr. Ten typ danych jest używany do pracy z polami, które będą zawierać tylko dane liczbowe. Zmienną można zadeklarować z dokładnością i szczegółami cyfr dziesiętnych lub bez tych informacji. Podczas przypisywania do tego typu danych wartości nie muszą być umieszczane w cudzysłowach.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

Objaśnienie składni:

  • W powyższym, pierwsza deklaracja deklaruje, że zmienna „A” ma typ danych liczbowych z całkowitą precyzją 8 i cyframi dziesiętnymi 2.
  • Druga deklaracja deklaruje, że zmienna „B” ma typ danych liczbowych z całkowitą dokładnością do 8 i bez cyfr dziesiętnych.
  • Trzecia deklaracja jest najbardziej ogólna, deklaruje, że zmienna „C” ma typ danych liczbowych bez ograniczeń co do dokładności ani miejsc dziesiętnych. Może zająć maksymalnie 38 cyfr.

Typ danych BOOLEAN:

Ten typ danych przechowuje wartości logiczne. Reprezentuje PRAWDA lub FAŁSZ i jest używany głównie w instrukcjach warunkowych. Podczas przypisywania do tego typu danych wartości nie muszą być umieszczane w cudzysłowach.

Var1 BOOLEAN;

Objaśnienie składni:

  • W powyższym przypadku zmienna „Var1” jest zadeklarowana jako typ danych BOOLEAN. Dane wyjściowe kodu będą miały wartość prawda lub fałsz w oparciu o ustawiony warunek.

DATA Typ danych:

Ten typ danych przechowuje wartości w formacie daty, w postaci daty, miesiąca i roku. Ilekroć zmienna jest zdefiniowana z typem danych DATA wraz z datą, może ona zawierać informacje o czasie, a domyślnie informacja o czasie jest ustawiona na 12:00:00, jeśli nie jest określona. Podczas przypisywania do tego typu danych wartości należy ująć w cudzysłowy.

Standardowy format czasu Oracle dla danych wejściowych i wyjściowych to „DD-MON-YY” i jest ponownie ustawiany na NLS_PARAMETERS (NLS_DATE_FORMAT) na poziomie sesji.

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

Objaśnienie składni:

  • W powyższym przykładzie, zmienna „newyear” jest zadeklarowany jako typ danych Data i przypisana wartość Jana 1 st , 2015 dacie.
  • Druga deklaracja deklaruje zmienną current_date jako typ danych DATE i przypisuje wartość z bieżącą datą systemową.
  • Obie te zmienne zawierają informacje o czasie.

Typ danych LOB:

Ten typ danych jest używany głównie do przechowywania i manipulowania dużymi blokami nieustrukturyzowanych danych, takich jak obrazy, pliki multimedialne itp. Oracle preferuje LOB zamiast typu LONG, ponieważ jest bardziej elastyczny niż typ danych LONG. Poniżej przedstawiono kilka głównych zalet LOB w porównaniu z typem danych LONG.

  • Liczba kolumn w tabeli o typie danych LONG jest ograniczona do 1, podczas gdy tabela nie ma ograniczeń co do liczby kolumn o typie danych LOB.
  • Narzędzie interfejsu danych akceptuje typ danych LOB tabeli podczas replikacji danych, ale pomija kolumnę LONG tabeli. Te LONG kolumny należy replikować ręcznie.
  • Rozmiar kolumny LONG to 2 GB, podczas gdy LOB może przechowywać do 128 TB.
  • Oracle stale ulepsza typ danych LOB w każdym wydaniu zgodnie ze współczesnymi wymaganiami, podczas gdy typ danych LONG jest stały i nie otrzymuje wielu aktualizacji.

Dlatego zawsze dobrze jest używać typu danych LOB zamiast typu danych LONG. Poniżej przedstawiono różne typy danych LOB. Mogą przechowywać do 128 terabajtów.

  1. KROPELKA
  2. CLOB i NCLOB
  3. BFILE
Typ danych Opis Składnia
KROPELKA

Ten typ danych przechowuje dane LOB w formacie pliku binarnego do maksymalnego rozmiaru 128 TB. Nie przechowuje danych w oparciu o szczegóły zestawu znaków, więc może przechowywać nieustrukturyzowane dane, takie jak obiekty multimedialne, obrazy itp.

Binary_data BLOB;

Objaśnienie składni:

  • W powyższym przypadku zmienna „Binary_data” jest zadeklarowana jako BLOB.
CLOB i NCLOB

Typ danych CLOB przechowuje dane LOB w zestawie znaków, podczas gdy NCLOB przechowuje dane w rodzimym zestawie znaków. Ponieważ te typy danych używają pamięci opartej na zestawie znaków, nie mogą one przechowywać danych, takich jak multimedia, obrazy itp., Których nie można umieścić w ciągu znaków. Maksymalny rozmiar tych typów danych to 128 TB.

Charac_data CLOB;

Objaśnienie składni:

  • W powyższym przypadku zmienna „Charac_data” jest zadeklarowana jako typ danych CLOB.
BFILE
  • BFILE to typy danych, które przechowują dane w nieustrukturyzowanym formacie binarnym poza bazą danych jako plik systemu operacyjnego.
  • Rozmiar BFILE dotyczy ograniczonego systemu operacyjnego i są one plikami tylko do odczytu i nie można ich modyfikować.

Podsumowanie

Omówiliśmy różne proste typy danych, które są dostępne w PL / SQL, wraz z ich składnią. Dowiemy się o złożonych typach danych w dalszych tematach.