Oracle PL / SQL datatyper: boolsk, nummer, dato (eksempel)

Innholdsfortegnelse:

Anonim

Hva er PL / SQL-datatyper?

En datatype er assosiert med det spesifikke lagringsformatet og begrensningene for området. I Oracle tildeles hver verdi eller konstant en datatype.

I utgangspunktet definerer den hvordan dataene lagres, håndteres og behandles av Oracle under datalagring og -behandling.

Hovedforskjellen mellom PL / SQL- og SQL-datatyper er at SQL-datatypen er begrenset til tabellkolonne mens PL / SQL-datatypene brukes i PL / SQL-blokkene. Mer om dette senere i veiledningen.

Følgende er diagrammet over forskjellige datatyper i PL / SQL

I denne veiledningen vil du lære-

  • TEGN Datatype
  • NUMBER Datatype
  • BOOLEAN Datatype
  • DATE Datatype
  • LOB Datatype

CHARACTER Datatype:

Denne datatypen lagrer i utgangspunktet alfanumeriske tegn i strengformat.

Bokstavverdiene bør alltid legges inn i enkle anførselstegn mens de tilordnes til karaktertypen CHARACTER.

Denne karakterdatatypen er videre klassifisert som følger:

  • CHAR Datatype (fast strengstørrelse)
  • VARCHAR2 Datatype (variabel strengstørrelse)
  • VARCHAR Datatype
  • NCHAR (innfødt fast strengstørrelse)
  • NVARCHAR2 (innfødt variabel strengstørrelse)
  • LANG og LANG RÅ
Data-type Beskrivelse Syntaks
CHAR Denne datatypen lagrer strengverdien, og størrelsen på strengen blir løst på tidspunktet for deklarering av variabelen.
  • Oracle vil være blankpolstret variabelen hvis variabelen ikke opptar hele størrelsen som er deklarert for den, og derfor vil Oracle tildele minnet til deklarert størrelse, selv om variabelen ikke okkuperer den fullt ut.
  • Størrelsesbegrensningen for denne datatypen er 1-2000 byte.
  • CHAR-datatypen er mer hensiktsmessig å bruke der den faste størrelsen på dataene blir håndtert.
grade CHAR;manager CHAR (10):= 'guru99';
Syntaks Forklaring:
  • Den første erklæringen erklærte variabelen 'karakter' for CHAR-datatypen med maksimal størrelse på 1 byte (standardverdi).
  • Den andre erklæringen erklærte variabelen 'manager' av CHAR-datatypen med maksimal størrelse på 10 og tildelte verdien 'guru99' som er på 6 byte. Oracle vil i dette tilfellet tildele minne på 10 byte i stedet for 6 byte.
VARCHAR2 Denne datatypen lagrer strengen, men lengden på strengen er ikke fast.
  • Størrelsesbegrensningen for denne datatypen er 1-4000 byte for tabellkolonnestørrelse og 1-32767 byte for variabler.
  • Størrelsen er definert for hver variabel på tidspunktet for variabelerklæringen.
  • Men Oracle vil tildele minne bare etter at variabelen er definert, dvs. Oracle vil bare vurdere den faktiske lengden på strengen som er lagret i en variabel for minnetildeling i stedet for størrelsen som er gitt for en variabel i erklæringsdelen.
  • Det er alltid bra å bruke VARCHAR2 i stedet for CHAR-datatype for å optimalisere minnebruk.
manager VARCHAR2(10) := ‘guru99';
Syntaks Forklaring:
  • Ovennevnte erklæringserklæring erklærte variabelen 'manager' for VARCHAR2-datatypen med den maksimale størrelsen på 10 og tildelte verdien 'guru99' som er på 6 byte. Oracle vil i dette tilfellet tildele minne på bare 6 byte.
VARCHAR Dette er synonymt med VARCHAR2-datatypen.
  • Det er alltid en god praksis å bruke VARCHAR2 i stedet for VARCHAR for å unngå atferdsendringer.
manager VARCHAR(10) := ‘guru99';
Syntaks Forklaring:
  • Ovennevnte erklæringserklæring erklærte variabelen 'manager' for VARCHAR-datatypen med maksimal størrelse på 10 og tildelte verdien 'guru99' som er på 6 byte. Oracle vil i dette tilfellet tildele minne på bare 6 byte. (I likhet med VARCHAR2)
NCHAR Denne datatypen er den samme som CHAR-datatypen, men tegnsettet vil av det nasjonale tegnsettet.
  • Dette tegnsettet kan defineres for økten ved hjelp av NLS_PARAMETERS.
  • Tegnsettet kan være enten UTF16 eller UTF8.
  • Størrelsesbegrensningen er 1-2000 byte.
native NCHAR(10);
Syntaks Forklaring:
  • Ovennevnte erklæringserklæring erklærer variabelen 'innfødt' av NCHAR-datatypen med maksimal størrelse på 10.
  • Lengden på denne variabelen avhenger av (antall lengder) per byte som definert i tegnsettet.
NVARCHAR2 Denne datatypen er den samme som VARCHAR2-datatypen, men tegnsettet vil være av det nasjonale tegnsettet.
  • Dette tegnsettet kan defineres for økten ved hjelp av NLS_PARAMETERS.
  • Tegnsettet kan være enten UTF16 eller UTF8.
  • Størrelsesbegrensningen er 1-4000 byte.
Native var NVARCHAR2(10):='guru99';
Syntaks Forklaring:
  • Ovennevnte erklæringserklæring erklærer variabelen 'Native_var' for datatypen NVARCHAR2 med maksimal størrelse på 10.
LANGT og LANGT Denne datatypen brukes til å lagre stor tekst eller rådata opp til maksimal størrelse på 2 GB.
  • Disse brukes hovedsakelig i dataordlisten.
  • LONG datatype brukes til å lagre tegnsettdata, mens LONG RAW brukes til å lagre data i binært format.
  • LONG RAW-datatypen godtar medieobjekter, bilder osv., Mens LONG bare fungerer på data som kan lagres ved hjelp av tegnsett.
Large_text LONG;Large_raw LONG RAW;
Syntaks Forklaring:
  • Ovennevnte erklæringserklæring erklærer variabelen 'Large_text' for LONG datatype og 'Large_raw' for LONG RAW datatype.
Merk: Bruk av LANG datatype anbefales ikke av Oracle. I stedet bør LOB-datatype foretrekkes.

NUMBER Datatype:

Denne datatypen lagrer faste eller flytende tall med opptil 38 presisjonssifre. Denne datatypen brukes til å arbeide med felt som bare inneholder talldata. Variabelen kan deklareres enten med presisjon og desimalsifrede detaljer eller uten denne informasjonen. Verdier trenger ikke å inngå i anførselstegn mens de tildeles for denne datatypen.

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

Syntaks Forklaring:

  • I det ovennevnte erklærer den første erklæringen at variabelen 'A' er av datatype med total presisjon 8 og desimaltall 2.
  • Den andre erklæringen erklærer at variabelen 'B' er av datatype med total presisjon 8 og ingen desimaltegn.
  • Den tredje erklæringen er den mest generiske, erklærer at variabelen 'C' er av datatype uten begrensning i presisjon eller desimaler. Det kan ta opptil maksimalt 38 sifre.

BOOLEAN Datatype:

Denne datatypen lagrer de logiske verdiene. Den representerer enten SANT eller FALSK og brukes hovedsakelig i betingede uttalelser. Verdier trenger ikke å inngå i anførselstegn mens de tildeles for denne datatypen.

Var1 BOOLEAN;

Syntaks Forklaring:

  • I ovenstående er variabel 'Var1' erklært som BOOLEAN datatype. Utgangen av koden vil være enten sant eller usant basert på betingelsessettet.

DATE Datatype:

Denne datatypen lagrer verdiene i datoformat, som dato, måned og år. Hver gang en variabel er definert med DATE-datatypen sammen med datoen, kan den inneholde tidsinformasjon, og som standard er tidsinformasjon satt til 12:00:00 hvis den ikke er spesifisert. Verdiene må inngå i anførselstegn mens de tildeles for denne datatypen.

Standard Oracle-tidsformat for input og output er 'DD-MON-YY' og det er igjen satt til NLS_PARAMETERS (NLS_DATE_FORMAT) på øktnivå.

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

Syntaks Forklaring:

  • Ovenfor variable 'newyear' er erklært som DATO datatype og tildelt verdien av den første januar st , 2015 dato.
  • Den andre erklæringen erklærer variabelen current_date som DATE-datatype og tilordnet verdien med gjeldende systemdato.
  • Begge disse variablene inneholder tidsinformasjonen.

LOB datatype:

Denne datatypen brukes hovedsakelig til å lagre og manipulere store blokker av ustrukturerte data som bilder, multimediafiler osv. Oracle foretrekker LOB i stedet for a LONG datatype, da den er mer fleksibel enn LONG datatypen. Nedenfor er de få hovedfordelene med LOB fremfor LONG datatype.

  • Antall kolonner i en tabell med LONG datatype er begrenset til 1, mens en tabell ikke har noen begrensning på et antall kolonner med LOB datatype.
  • Datagrensesnittverktøyet godtar LOB-datatype for tabellen under datareplikering, men den utelater LANG kolonne i tabellen. Disse LANGE kolonnene må replikeres manuelt.
  • LONG-kolonnens størrelse er 2 GB, mens LOB kan lagre opptil 128 TB.
  • Oracle forbedrer kontinuerlig LOB-datatypen i hver av utgivelsene i henhold til det moderne kravet, mens LONG-datatypen er konstant og ikke får mange oppdateringer.

Så det er alltid bra å bruke LOB-datatype i stedet for LONG-datatypen. Følgende er de forskjellige LOB-datatypene. De kan lagre opptil 128 terabyte.

  1. BLOB
  2. CLOB og NCLOB
  3. BFIL
Data-type Beskrivelse Syntaks
BLOB

Denne datatypen lagrer LOB-dataene i det binære filformatet opp til maksimal størrelse på 128 TB. Dette lagrer ikke data basert på tegnsettdetaljene, slik at de kan lagre ustrukturerte data som multimediaobjekter, bilder osv.

Binary_data BLOB;

Syntaks Forklaring:

  • I ovennevnte blir variabel 'Binary_data' erklært som en BLOB.
CLOB og NCLOB

CLOB-datatypen lagrer LOB-dataene i tegnsettet, mens NCLOB lagrer dataene i det opprinnelige tegnsettet. Siden disse datatypene bruker tegnsettbasert lagring, kan disse ikke lagre dataene som multimedia, bilder osv. Som ikke kan settes i en tegnstreng. Maksimal størrelse på disse datatypene er 128 TB.

Charac_data CLOB;

Syntaks Forklaring:

  • I det ovenstående er variabelen 'Charac_data' erklært som CLOB-datatype.
BFIL
  • BFILE er datatypene som lagret ustrukturerte binære formatdata utenfor databasen som en operativsystemfil.
  • Størrelsen på BFILE er til et begrenset operativsystem, og de er skrivebeskyttede filer og kan ikke endres.

Sammendrag

Vi har dekket de forskjellige enkle datatypene som er tilgjengelige i PL / SQL sammen med syntaksen. Vi vil lære om komplekse datatyper i ytterligere emner.