Oracle Typy danych PL/SQL: wartość logiczna, liczba, data [przykład]

Co to są typy danych PL/SQL?

Typy danych w PL/SQL służą do definiowania sposobu przechowywania, obsługi i przetwarzania danych Oracle podczas przechowywania i przetwarzania danych. Typy danych są powiązane z określonym formatem przechowywania i ograniczeniami zakresu. W Oracle, każda wartość lub stała ma przypisany typ danych.

Główna różnica między PL/SQL i SQL Typy danych to typy danych SQL ograniczone do kolumn tabeli, podczas gdy typy danych PL/SQL są używane w Bloki PL/SQLWięcej na ten temat później w tym samouczku.

Poniżej znajduje się diagram różnych Oracle Typy danych PL/SQL:

Typy danych PL/SQL
Różne typy danych w PL/SQL

Typ danych PL/SQL CHARACTER

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

Przypisując je do typu danych CHARACTER, wartości literałów należy zawsze ująć w pojedyncze cudzysłowy.

Ten znakowy typ danych 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 łańcucha)
  • NVARCHAR2 (natywny rozmiar łańcucha zmiennej)
  • DŁUGI i DŁUGI SUROWY
DataType Opis Składnia
ZWĘGLAĆ Ten typ danych przechowuje wartość ciągu, a rozmiar ciągu jest ustalany w momencie zadeklarowania zmienna.

  • Oracle zostałaby dopełniona zmienną spacją, gdyby zmienna nie zajmowała całego zadeklarowanego dla niej rozmiaru, Stąd Oracle przydzieli pamięć o zadeklarowanym rozmiarze, nawet jeśli zmienna nie zajmowała jej w całości.
  • Ograniczenie rozmiaru dla tego typu danych wynosi 1–2000 bajtów.
  • Typ danych CHAR jest bardziej odpowiedni do użycia tam, gdzie będzie obsługiwany stały rozmiar danych.
grade CHAR;
manager CHAR (10):= 'guru99';

Wyjaśnienie składni:

  • Pierwsza instrukcja deklaracji zadeklarowała zmienną „grade” typu danych CHAR o maksymalnym rozmiarze 1 bajtu (wartość domyślna).
  • W drugiej instrukcji deklaracji zadeklarowano zmienną „manager” typu danych CHAR o maksymalnym rozmiarze 10 i przypisano wartość „guru99”, która ma 6 bajtów. Oracle przydzieli pamięć 10 bajtów zamiast 6 bajtów w tym przypadku.
VARCHAR2 Ten typ danych przechowuje ciąg, ale jego długość nie jest stała.

  • Ograniczenie rozmiaru dla tego typu danych wynosi 1–4000 bajtów dla rozmiaru kolumn tabeli i 1–32767 bajtów dla zmiennych.
  • Rozmiar definiowany jest 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 przechowywanego w zmiennej w celu przydzielenia pamięci, a nie rozmiar podany dla zmiennej w części deklaracyjnej.
  • Zawsze dobrze jest używać typu danych VARCHAR2 zamiast CHAR, aby zoptymalizować wykorzystanie pamięci.
manager VARCHAR2(10) := ‘guru99';

Wyjaśnienie składni:

  • W powyższej deklaracji zadeklarowano zmienną „manager” typu danych VARCHAR2 o maksymalnym rozmiarze 10 i przypisano wartość „guru99”, która ma 6 bajtów. Oracle w tym przypadku przydzieli pamięć tylko 6 bajtów.
VARCHAR Jest to równoznaczne z typem danych VARCHAR2.

  • Zawsze dobrą praktyką jest używanie VARCHAR2 zamiast VARCHAR, aby uniknąć zmian w zachowaniu.
manager VARCHAR(10) := ‘guru99';

Wyjaśnienie składni:

  • W powyższej deklaracji zadeklarowano zmienną „manager” typu danych VARCHAR o maksymalnym rozmiarze 10 i przypisano wartość „guru99”, która ma 6 bajtów. Oracle w tym przypadku przydzieli pamięć tylko 6 bajtów. (Podobnie jak VARCHAR2)
NCHAR Ten typ danych jest taki sam jak typ danych CHAR, ale zestaw znaków będzie odpowiadał narodowemu zestawowi znaków.

  • Ten zestaw znaków można zdefiniować dla sesji za pomocą parametru NLS_PARAMETERS.
  • Zestaw znaków może mieć format UTF16 lub UTF8.
  • Ograniczenie rozmiaru wynosi 1–2000 bajtów.
native NCHAR(10);

Wyjaśnienie składni:

  • Powyższe oświadczenie deklaruje zmienną 'native' typu danych NCHAR o maksymalnym rozmiarze 10.
  • Długość tej zmiennej zależy od (liczby długości) na bajt zdefiniowanej w zestawie znaków.
NVARCHAR2 Ten typ danych jest taki sam jak typ danych VARCHAR2, ale zestaw znaków będzie miał charakter narodowy.

  • Ten zestaw znaków można zdefiniować dla sesji za pomocą parametru NLS_PARAMETERS.
  • Zestaw znaków może mieć format UTF16 lub UTF8.
  • Ograniczenie rozmiaru wynosi 1–4000 bajtów.
Native var NVARCHAR2(10):='guru99';

Wyjaśnienie składni:

  • Powyższe oświadczenie deklaruje zmienną „Native_var” typu danych NVARCHAR2 o maksymalnym rozmiarze 10.
DŁUGI i DŁUGI Ten typ danych służy do przechowywania dużego tekstu lub nieprzetworzonych danych o maksymalnym rozmiarze 2 GB.

  • Są one używane głównie w słowniku danych.
  • Typ danych LONG służy do przechowywania danych zestawu znaków, natomiast LONG RAW służy do przechowywania danych w formacie binarnym.
  • Typ danych LONG RAW akceptuje obiekty multimedialne, obrazy itp., natomiast LONG działa tylko na danych, które można przechowywać przy użyciu zestawu znaków.
Large_text LONG;
Large_raw LONG RAW;

Wyjaśnienie składni:

  • Powyższe oświadczenie deklaruje zmienną „Large_text” typu danych LONG i „Large_raw” typu danych LONG RAW.

Uwaga: Używanie typu danych LONG nie jest zalecane przez Oracle. Zamiast tego powinien być preferowany typ danych LOB.

Typ danych PL/SQL NUMBER

Ten typ danych przechowuje liczby stałe lub zmiennoprzecinkowe do 38 cyfr precyzji. Ten typ danych jest używany do pracy z polami, które będą zawierać tylko dane liczbowe. Zmienna może być zadeklarowana z precyzją i szczegółami cyfr dziesiętnych lub bez tych informacji. Wartości nie muszą być ujęte w cudzysłowy podczas przypisywania dla tego typu danych.

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

Wyjaśnienie składni:

  • Powyższa deklaracja w pierwszej części określa, że ​​zmienna „A” jest typu danych liczbowych o całkowitej precyzji 8 i liczbie cyfr dziesiętnych 2.
  • Druga deklaracja określa, że ​​zmienna „B” jest typem danych liczbowych o całkowitej precyzji 8 i bez cyfr dziesiętnych.
  • Trzecia deklaracja jest najbardziej ogólna, deklaruje, że zmienna „C” jest typem danych liczbowych bez ograniczeń precyzji lub miejsc dziesiętnych. Może przyjąć maksymalnie 38 cyfr.

Typ danych BOOLEAN PL/SQL

Ten typ danych przechowuje wartości logiczne. Oracle Boolean Typ danych reprezentuje PRAWDA lub FAŁSZ i jest używany głównie w instrukcjach warunkowych. Wartości nie muszą być ujęte w cudzysłów podczas przypisywania dla tego typu danych.

Var1 BOOLEAN;

Wyjaśnienie składni:

  • Powyżej zmienna „Var1” jest zadeklarowana jako typ danych BOOLEAN. Dane wyjściowe kodu będą miały wartość prawda lub fałsz, w zależności od ustawionego warunku.

Typ danych PL/SQL DATE

Ten typ danych przechowuje wartości w formacie daty, jako data, miesiąc i rok. Ilekroć zmienna jest zdefiniowana z typem danych DATE wraz z datą, może przechowywać informację o czasie i domyślnie informacja o czasie jest ustawiona na 12:00:00, jeśli nie została określona. Wartości należy ująć w cudzysłów podczas przypisywania dla tego typu danych.

Średnia Oracle format czasu dla wejścia i wyjścia to „DD-MON-YY” i jest on ponownie ustawiany na NLS_PARAMETERS (NLS_DATE_FORMAT) na poziomie sesji.

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

Wyjaśnienie składni:

  • W powyższym przykładzie zmienna „nowyrok” jest zadeklarowana jako typ danych DATE i ma przypisaną wartość 1 styczniast, data 2015.
  • Druga deklaracja deklaruje zmienną current_date jako typ danych DATE i przypisuje jej wartość zawierającą bieżącą datę systemową.
  • Obie te zmienne przechowują informację o czasie.

Typ danych PL/SQL 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 woli LOB zamiast typu danych LONG, ponieważ jest bardziej elastyczny niż typ danych LONG. Poniżej przedstawiono kilka głównych zalet typu danych LOB w porównaniu z typem danych LONG.

  • Liczba kolumn w tabeli z typem danych LONG jest ograniczona do 1, natomiast tabela nie ma ograniczeń co do liczby kolumn z typem danych LOB.
  • Narzędzie interfejsu danych akceptuje typ danych LOB tabeli podczas replikacji danych, ale pomija kolumnę LONG tabeli. Te kolumny LONG należy zreplikować ręcznie.
  • Rozmiar kolumny LONG wynosi 2 GB, natomiast LOB może pomieścić do 128 TB.
  • Oracle stale ulepsza typ danych LOB w każdym ze swoich wydań zgodnie z nowoczesnymi 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 rozmiaru 128 terabajtów.

  1. KROPELKA
  2. CLOB i NCLOB
  3. BPLIK
DataType Opis Składnia
KROPELKA Ten typ danych przechowuje dane LOB w formacie pliku binarnego do maksymalnego rozmiaru 128 TB. Nie przechowuje danych na podstawie szczegółów zestawu znaków, więc może przechowywać niestrukturyzowane dane, takie jak obiekty multimedialne, obrazy itp.
Binary_data BLOB;

Wyjaśnienie składni:

  • W powyższym przykładzie zmienna „Binary_data” jest zadeklarowana jako obiekt BLOB.
CLOB i NCLOB Typ danych CLOB przechowuje dane LOB w zestawie znaków, podczas gdy NCLOB przechowuje dane w natywnym zestawie znaków. Ponieważ te typy danych wykorzystują pamięć opartą na zestawie znaków, nie można w nich 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 wynosi 128 TB.
Charac_data CLOB;

Wyjaśnienie składni:

  • W powyższym przykładzie zmienna „Charac_data” jest zadeklarowana jako typ danych CLOB.
BPLIK
  • BFILE to typy danych, które przechowują niestrukturyzowane dane w formacie binarnym poza bazą danych w postaci pliku systemu operacyjnego.
  • Rozmiar pliku BFILE jest ograniczony do systemu operacyjnego. Są to pliki 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ą. Poznamy złożone typy danych w dalszych tematach.