Vrsta zapisov Oracle PL / SQL z primeri

Kazalo:

Anonim

Kaj je vrsta zapisa?

Vrsta zapisa je zapleten podatkovni tip, ki programerju omogoča, da ustvari nov podatkovni tip z želeno strukturo stolpca.

  • Združi enega ali več stolpcev, da tvori nov podatkovni tip
  • Ti stolpci bodo imeli svoje ime in vrsto podatkov
  • Vrsta zapisa lahko sprejme podatke
    • Kot en zapis, ki je sestavljen iz številnih stolpcev ALI
    • Sprejema lahko vrednost za določen stolpec zapisa
  • Vrsta zapisa preprosto pomeni nov podatkovni tip. Ko je vrsta zapisa ustvarjena, bo shranjena kot nov podatkovni tip v zbirki podatkov in bo uporabljena za razglasitev spremenljivke v programih.
  • Ključno besedo 'TIP' bo uporabil, da bo prevajalniku naročil, da ustvarja nov podatkovni tip.
  • Ustvari se lahko na " ravni baze podatkov", ki se lahko shrani kot predmeti baze podatkov, uporablja se po celotni zbirki podatkov ali pa se ustvari na ravni " podprograma" , kar je vidno samo znotraj podprogramov.
  • Za zapis stolpca tabele lahko deklariramo tudi vrsto zapisa baze podatkov, tako da lahko en stolpec vsebuje zapletene podatke.
  • Do podatkov v tem tipu podatkov je mogoče dostopati tako, da se sklicujete na njihovo ime_premenljivke, ki ji sledi operator obdobja (.), Čemur sledi ime_ stolpca, tj. '.

Sintaksa za deklaracijo na ravni baze podatkov:

CREATE TYPE  IS RECORD( ,);

V prvi sintaksi lahko vidimo ključno besedo 'CREATE TYPE', ki prevajalniku naroči, naj ustvari vrsto zapisa z imenom "type_name_db" z navedenim stolpcem kot objektom baze podatkov.

To je podano kot posamezna izjava in ne znotraj nobenega bloka.

Sintaksa za izjavo na ravni podprograma:

DECLARETYPE  IS RECORD( ,);BEGIN;END;

V sintaksi ustvarjamo vrsto zapisa z imenom "type_name" samo znotraj podprograma.

Pri obeh metodah deklaracije je način definiranja stolpca in vrste podatkov podoben.

Primer 1: Vrsta RECORD kot predmet zbirke podatkov

V tem programu bomo videli, kako ustvariti "vrsto zapisa" kot objekt baze podatkov. Ustvarili bomo vrsto zapisa 'emp_det' s štirimi stolpci. Stolpci in njihov podatkovni tip so naslednji:

  • EMP_NO (ŠTEVILO)
  • EMP_NAME (VARCHAR2 (150))
  • VODJA (ŠTEVILO)
  • PLAČA (ŠTEVILO)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/
Izhod:
Type created

Razlaga kode:

  • Zgornja koda bo ustvarila vrsto emp_det kot objekt baze podatkov.
  • Imel bo 4 stolpce emp_no, emp_name, manager in plača, kot je določeno.
  • Zdaj je 'emp_det' podoben drugemu tipu podatkov (na primer ŠTEVILO, VARCHAR @ itd.) In je viden v celotni bazi podatkov. Zato je to mogoče uporabiti v celotni bazi podatkov za razglasitev spremenljivke te vrste.

Izhod:

Na ravni baze podatkov ustvaril vrsto 'emp_det' kot vrsto zapisa.

Primer 2: vrsta zapisa na ravni podprograma - dostop na ravni stolpca

V tem primeru bomo videli, kako ustvariti vrsto zapisa na ravni podprograma in kako izpolniti in pridobiti vrednosti iz njega na ravni stolpca.

Ustvarili bomo vrsto zapisa 'emp_det' na ravni podprograma, ki jo bomo uporabili za zapolnitev in prikaz podatkov iz nje.

DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGINguru99_emp_rec.emp_no:= 1001;guru99_emp_rec.emp_name:=:'XXX';guru99_emp_rec.manager:= 1000;guru99_emp_rec.salary:=10000;dbms_output.put.line('Employee Detail');dbms_output.put_line ('Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line ('Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line ('Employee Salary: ' ||guru99_emp_rec.salary);dbms_output.put_line ('Employee Manager Number: '||guru99_emp_rec.manager);END;/

Izhod:

Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000

Razlaga kode:

  • Vrstica kode 2-8 : Tip zapisa 'emp_det' je prijavljen s stolpci emp_no, emp_name, plača in upravitelj podatkovnih tipov ŠTEVILO, VARČAR2, ŠTEVILO, ŠTEVILO.
  • Vrstica kode 9: spremenljivka guru99_emp_rec je deklarirana kot podatkovni tip 'emp_det'. Zdaj lahko ta spremenljivka vsebuje vrednost, ki vsebuje vsa zgornja 4 polja / stolpce.
  • Vrstica kode 11: Popolnite polje 'emp_no' v 'guru99_emp_rec' z vrednostjo 1001.
  • Vrstica kode 12: Polje 'emp_name' polja 'guru99_emp_rec' zapolni z vrednostjo XXX.
  • Vrstica kode 13: Popolnite polje 'manager' v 'guru99_emp_rec' z vrednostjo 1000.
  • Vrstica kode 14: Zapolnitev polja "plača" polja "guru99_emp_rec" z vrednostjo 10000.
  • Vrstica kode 15-19: Prikaz vrednosti 'guru99_emp_rec' v izhodu.

3. primer: vrsta zapisa na ravni podprograma - dostop na ravni vrstice

V tem primeru bomo videli, kako ustvariti vrsto zapisa na ravni podprograma in kako ga izpolniti kot raven vrstice. Ustvarili bomo vrsto zapisa 'emp_det' na ravni podprograma, ki jo bomo uporabili za zapolnitev in prikaz podatkov iz nje.

DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME YARCHAR2( 150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGININSERT INTO emp (emp_no, emp_name, salary, manager) VALUES (1002,'YYY',15000,1000);COMMIT;SELECT emp_no, emp_name, salary, manager INTO guru99_emp_rec FROM emp WHERE emp_no=1002;dbms_output.put_line (‘Employee Detail’);dbms_output.put_line (‘Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line (‘Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line (‘Employee Salary: '||guru99_emp_rec. salary);dbms_output.put_line (‘Employee Manager Number: '||guru99_emp_rec.manager);END;/

Razlaga kode:

  • Vrstica kode 2-8 : Tip zapisa 'emp_det' je prijavljen s stolpci emp_no, emp_name, plača in upravitelj podatkovnih tipov ŠTEVILO, VARČAR2, ŠTEVILO, ŠTEVILO.
  • Vrstica kode 9: spremenljivka guru99_emp_rec je deklarirana kot podatkovni tip 'emp_det'. Zdaj lahko ta spremenljivka vsebuje vrednost, ki vsebuje vsa zgornja 4 polja / stolpce.
  • Vrstica kode 11: Tabelo emp zapolnite s podatki 1002 kot emp_no, LLL kot ime_praznikov, 15000 kot plačo in 1000 kot številko upravitelja.
  • Vrstica kode 12: Izvajanje zgornje vstavitvene transakcije.
  • Vrstica kode 13: Spremenljivka 'guru99_emp_rec' se zapolni kot podatki na ravni vrstice iz izbrane poizvedbe za številko zaposlenega 1002
  • Vrstica kode 15-19: Prikaz vrednosti 'guru99_emp_rec' v izhodu.

Izhod:

Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000

Opomba: Do tipa zapisa je mogoče dostopati samo na ravni stolpca, medtem ko njegovo vrednost preusmerja v kateri koli način izpisa.