Oracle Tipuri de date PL/SQL: boolean, număr, dată [Exemplu]

Ce sunt tipurile de date PL/SQL?

Tipuri de date în PL/SQL sunt folosite pentru a defini modul în care datele vor fi stocate, tratate și tratate de către Oracle în timpul stocării și prelucrării datelor. Tipurile de date sunt asociate cu formatul de stocare specific și cu constrângerile de interval. În Oracle, fiecărei valori sau constante i se atribuie un tip de date.

Principala diferență dintre PL/SQL și SQL tipurile de date este, tipul de date SQL este limitat la coloana tabelului, în timp ce tipurile de date PL/SQL sunt utilizate în Blocuri PL/SQL. Mai multe despre asta mai târziu în tutorial.

În continuare este diagrama diferitelor Oracle Tipuri de date PL/SQL:

Tipuri de date PL/SQL
Diferite tipuri de date în PL/SQL

PL/SQL CARACTER Tip de date

Acest tip de date stochează practic caractere alfanumerice în format șir.

Valorile literale ar trebui să fie întotdeauna incluse între ghilimele simple în timp ce le sunt atribuite tipului de date CHARACTER.

Acest tip de date caracter este clasificat în continuare după cum urmează:

  • CHAR Tipul de date (dimensiunea șirului fix)
  • VARCHAR2 Tip de date (dimensiune variabilă a șirului de caractere)
  • VARCHAR Tip de date
  • NCHAR (dimensiunea șirului nativ fix)
  • NVARCHAR2 (dimensiunea șirului variabil nativ)
  • LUNG și LUNG RAW
Tipul de date Descriere Sintaxă
REZERVOR Acest tip de date stochează valoarea șirului, iar dimensiunea șirului este fixă ​​în momentul declarării variabil.

  • Oracle variabila ar fi completată în gol dacă variabila nu a ocupat întreaga dimensiune care a fost declarată pentru ea, prin urmare Oracle va aloca memoria pentru dimensiunea declarată chiar dacă variabila nu a ocupat-o complet.
  • Limita de dimensiune pentru acest tip de date este de 1-2000 de octeți.
  • Tipul de date CHAR este mai potrivit pentru a fi utilizat acolo unde dimensiunea datelor va fi tratată oricând.
grade CHAR;
manager CHAR (10):= 'guru99';

Explicația sintaxei:

  • Prima declarație a declarat variabila „grade” a tipului de date CHAR cu dimensiunea maximă de 1 octet (valoare implicită).
  • A doua declarație a declarat variabila „manager” de tip de date CHAR cu dimensiunea maximă de 10 și a atribuit valoarea „guru99” care este de 6 octeți. Oracle va aloca memorie de 10 octeți în loc de 6 octeți în acest caz.
VARCHAR2 Acest tip de date stochează șirul, dar lungimea șirului nu este fixă.

  • Restricția de dimensiune pentru acest tip de date este de 1-4000 de octeți pentru dimensiunea coloanei de tabel și 1-32767 de octeți pentru variabile.
  • Mărimea este definită pentru fiecare variabilă în momentul declarării variabilei.
  • dar Oracle va aloca memorie numai după ce variabila este definită, adică Oracle va lua în considerare doar lungimea reală a șirului care este stocat într-o variabilă pentru alocarea memoriei, mai degrabă decât dimensiunea care a fost dată pentru o variabilă în partea de declarație.
  • Este întotdeauna bine să utilizați VARCHAR2 în loc de tipul de date CHAR pentru a optimiza utilizarea memoriei.
manager VARCHAR2(10) := ‘guru99';

Explicația sintaxei:

  • Declarația de mai sus a declarat variabila „manager” de tipul de date VARCHAR2 cu dimensiunea maximă de 10 și a atribuit valoarea „guru99” care este de 6 octeți. Oracle va aloca memorie de doar 6 octeți în acest caz.
VARCHAR Acesta este sinonim cu tipul de date VARCHAR2.

  • Este întotdeauna o practică bună să utilizați VARCHAR2 în loc de VARCHAR pentru a evita schimbările comportamentale.
manager VARCHAR(10) := ‘guru99';

Explicația sintaxei:

  • Declarația de mai sus a declarat variabila „manager” de tip de date VARCHAR cu dimensiunea maximă de 10 și a atribuit valoarea „guru99” care este de 6 octeți. Oracle va aloca memorie de doar 6 octeți în acest caz. (Asemănător cu VARCHAR2)
NCHAR Acest tip de date este același cu tipul de date CHAR, dar setul de caractere va fi al setului de caractere național.

  • Acest set de caractere poate fi definit pentru sesiune folosind NLS_PARAMETERS.
  • Setul de caractere poate fi fie UTF16, fie UTF8.
  • Limita de dimensiune este de 1-2000 de octeți.
native NCHAR(10);

Explicația sintaxei:

  • Declarația de mai sus declară variabila „native” a tipului de date NCHAR cu dimensiunea maximă de 10.
  • Lungimea acestei variabile depinde de (numărul de lungimi) per octet, așa cum este definit în setul de caractere.
NVARCHAR2 Acest tip de date este același cu tipul de date VARCHAR2, dar setul de caractere va fi din setul de caractere național.

  • Acest set de caractere poate fi definit pentru sesiune folosind NLS_PARAMETERS.
  • Setul de caractere poate fi fie UTF16, fie UTF8.
  • Limita de dimensiune este de 1-4000 de octeți.
Native var NVARCHAR2(10):='guru99';

Explicația sintaxei:

  • Declarația de mai sus declară variabila „Native_var” de tipul de date NVARCHAR2 cu dimensiunea maximă de 10.
LUNG și LUNGĂ Acest tip de date este folosit pentru a stoca text mari sau date brute până la dimensiunea maximă de 2 GB.

  • Acestea sunt utilizate în principal în dicționarul de date.
  • Tipul de date LONG este folosit pentru a stoca datele setului de caractere, în timp ce LONG RAW este folosit pentru a stoca date în format binar.
  • Tipul de date LONG RAW acceptă obiecte media, imagini etc., în timp ce LONG funcționează numai pe date care pot fi stocate folosind setul de caractere.
Large_text LONG;
Large_raw LONG RAW;

Explicația sintaxei:

  • Declarația de mai sus declară variabila „Large_text” de tipul de date LONG și „Large_raw” de tipul de date LONG RAW.

Notă: Utilizarea tipului de date LONG nu este recomandată de Oracle. În schimb, ar trebui să fie preferat tipul de date LOB.

PL/SQL NUMBER Tip de date

Acest tip de date stochează numere fixe sau în virgulă mobilă de până la 38 de cifre de precizie. Acest tip de date este folosit pentru a lucra cu câmpuri care vor conține doar date numerice. Variabila poate fi declarată fie cu precizie și detalii cu cifre zecimale, fie fără această informație. Valorile nu trebuie să fie incluse între ghilimele în timpul atribuirii pentru acest tip de date.

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

Explicația sintaxei:

  • În cele de mai sus, prima declarație declară că variabila „A” este de tip de date numerică cu precizie totală 8 și cifre zecimale 2.
  • A doua declarație declară că variabila „B” este de tip de date numerică cu precizie totală 8 și fără cifre zecimale.
  • A treia declarație este cea mai generică, declară că variabila „C” este de tip de date numerică, fără restricții de precizie sau zecimale. Poate dura până la maximum 38 de cifre.

Tipul de date PL/SQL BOOLEAN

Acest tip de date stochează valorile logice. Oracle Tipul de date boolean reprezintă fie TRUE, fie FALS și este utilizat în principal în instrucțiunile condiționate. Valorile nu trebuie să fie incluse între ghilimele în timpul atribuirii pentru acest tip de date.

Var1 BOOLEAN;

Explicația sintaxei:

  • În cele de mai sus, variabila „Var1” este declarată ca tip de date BOOLEAN. Ieșirea codului va fi fie adevărată, fie falsă, în funcție de setul de condiții.

Tip de date PL/SQL DATE

Acest tip de date stochează valorile în format de dată, ca dată, lună și an. Ori de câte ori o variabilă este definită cu tipul de date DATE împreună cu data, aceasta poate conține informații despre oră și, implicit, informațiile despre oră sunt setate la 12:00:00 dacă nu sunt specificate. Valorile trebuie să fie incluse între ghilimele în timpul atribuirii pentru acest tip de date.

Standardul Oracle formatul de timp pentru intrare și ieșire este „DD-MON-YY” și este din nou setat la NLS_PARAMETERS (NLS_DATE_FORMAT) la nivel de sesiune.

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

Explicația sintaxei:

  • În cele de mai sus, variabila „an nou” este declarată ca tip de date DATE și i se atribuie valoarea 1 ianuariest, data 2015.
  • A doua declarație declară variabila current_date ca tip de date DATE și a atribuit valoarea cu data curentă a sistemului.
  • Ambele variabile dețin informații despre timp.

Tip de date PL/SQL LOB

Acest tip de date este utilizat în principal pentru a stoca și manipula blocuri mari de date nestructurate, cum ar fi imagini, fișiere multimedia etc. Oracle preferă LOB în loc de tipul de date LONG, deoarece este mai flexibil decât tipul de date LONG. Mai jos sunt câteva avantaje principale ale LOB față de tipul de date LONG.

  • Numărul de coloane dintr-un tabel cu tip de date LONG este limitat la 1, în timp ce un tabel nu are nicio restricție asupra unui număr de coloane cu tip de date LOB.
  • Instrumentul de interfață de date acceptă tipul de date LOB al tabelului în timpul replicării datelor, dar omite coloana LONG a tabelului. Aceste coloane LUNGI trebuie replicate manual.
  • Dimensiunea coloanei LONG este de 2 GB, în timp ce LOB poate stoca până la 128 TB.
  • Oracle îmbunătățește constant tipul de date LOB în fiecare dintre edițiile lor conform cerințelor moderne, în timp ce tipul de date LONG este constant și nu primește multe actualizări.

Deci, este întotdeauna bine să utilizați tipul de date LOB în loc de tipul de date LONG. Mai jos sunt diferitele tipuri de date LOB. Acestea pot stoca până la o dimensiune de 128 terabytes.

  1. BLOB
  2. CLOB și NCLOB
  3. BFILE
Tipul de date Descriere Sintaxă
BLOB Acest tip de date stochează datele LOB în format de fișier binar până la dimensiunea maximă de 128 TB. Aceasta nu stochează date bazate pe detaliile setului de caractere, astfel încât să poată stoca datele nestructurate, cum ar fi obiecte multimedia, imagini etc.
Binary_data BLOB;

Explicația sintaxei:

  • În cele de mai sus, variabila „Binary_data” este declarată ca BLOB.
CLOB și NCLOB Tipul de date CLOB stochează datele LOB în setul de caractere, în timp ce NCLOB stochează datele în setul de caractere nativ. Deoarece aceste tipuri de date folosesc stocarea bazată pe seturi de caractere, acestea nu pot stoca date precum multimedia, imagini etc. care nu pot fi introduse într-un șir de caractere. Dimensiunea maximă a acestor tipuri de date este de 128 TB.
Charac_data CLOB;

Explicația sintaxei:

  • În cele de mai sus, variabila „Charac_data” este declarată ca tip de date CLOB.
BFILE
  • BFILE sunt tipurile de date care au stocat datele în format binar nestructurat în afara bazei de date ca fișier de sistem de operare.
  • Dimensiunea BFILE este pentru un sistem de operare limitat și sunt fișiere numai pentru citire și nu pot fi modificate.

Rezumat

Am acoperit diferitele tipuri de date simple care sunt disponibile în PL / SQL împreună cu sintaxa lor. Vom afla despre tipurile de date complexe în subiecte suplimentare.