Oracle PL / SQL kirjete tüüp koos näidetega

Lang L: none (table-of-contents):

Anonim

Mis on kirje tüüp?

Kirjetüüp on keeruline andmetüüp, mis võimaldab programmeerijal luua soovitud veerustruktuuriga uue andmetüübi.

  • Uue andmetüübi moodustamiseks rühmitatakse see üks või mitu veergu
  • Nendel veergudel on oma nimi ja andmetüüp
  • Kirje tüüp võib andmeid aktsepteerida
    • Ühe kirjena, mis koosneb paljudest veergudest VÕI
    • See võib aktsepteerida kirje ühe konkreetse veeru väärtust
  • Kirjetüüp tähendab lihtsalt uut andmetüüpi. Kui kirjetüüp on loodud, salvestatakse see andmebaasis uue andmetüübina ja sama kasutatakse muutuja deklareerimiseks programmides.
  • Ta kasutab märksõna "TÜÜP", et juhendada kompilaatorit uue andmetüübi loomisele.
  • Seda saab luua " andmebaasi tasemel", mida saab salvestada andmebaasi objektidena, kasutada kogu andmebaasis või luua " alamprogrammi tasanditel" , mis on nähtav ainult alamprogrammide sees.
  • Andmebaasi taseme kirjetüübi saab deklareerida ka tabeli veergude jaoks, nii et üks veerg mahutab kompleksseid andmeid.
  • Selle andmetüübi andmetele pääseb juurde, viidates nende muutuja_nimele, millele järgneb perioodioperaator (.), Millele järgneb veeru_nimi, st „.

Deklaratsiooni süntaks andmebaasi tasandil:

CREATE TYPE  IS RECORD( ,);

Esimeses süntaksis näeme märksõna „CREATE TYPE”, mis käsib kompilaatoril luua andmebaasiobjektina määratud veeruga kirjetüüp nimega „type_name_db”.

See antakse individuaalse avaldusena ja mitte ühegi ploki sees.

Deklaratsiooni süntaks alamprogrammi tasandil:

DECLARETYPE  IS RECORD( ,);BEGIN;END;

Süntaksis loome kirjetüübi nimega "type_name" ainult alamprogrammi sees.

Mõlemas deklaratsioonimeetodis on veeru ja andmetüübi määratlemise viis sarnane.

Näide 1: Andmekogu objektina kirjetüüp

Selles programmis vaatame, kuidas luua andmebaasiobjektina kirje tüüp. Loome nelja veeruga kirjetüübi 'emp_det'. Veerud ja nende andmetüübid on järgmised:

  • EMP_NO (NUMBER)
  • EMP_NAME (VARCHAR2 (150))
  • JUHT (NUMBER)
  • PALK (NUMBER)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/
Väljund:
Type created

Koodi selgitus:

  • Ülaltoodud kood loob andmebaasiobjektina tüübi emp_det.
  • Sellel on 4 veergu emp_no, emp_name, manager ja palk vastavalt määratlusele.
  • Nüüd on 'emp_det' sarnane muude andmetüüpidega (näiteks NUMBER, VARCHAR @ jne). Ja see on nähtav kogu andmebaasis. Seega saab seda kasutada kogu andmebaasis seda tüüpi muutuja deklareerimiseks.

Väljund:

Lõi andmebaasi tasemel kirje tüübiks tüübi 'emp_det'.

Näide 2: Kirje tüüp alamprogrammi tasemel - juurdepääs veeru tasemele

Selles näites näeme, kuidas luua kirjetüüp alamprogrammi tasemel ja kuidas selle väärtusi veerutaseme järgi täita ja tuua.

Loome alamprogrammi tasemel kirjetüübi 'emp_det' ning kavatseme seda kasutada ka andmete täitmiseks ja kuvamiseks.

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;/

Väljund:

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

Koodi selgitus:

  • Koodirida 2–8 : kirjetüüp „emp_det” deklareeritakse veergudega emp_no, emp_name, palk ja andmetüübi NUMBER, VARCHAR2, NUMBER, NUMBER haldur.
  • Koodirida 9: muutuja guru99_emp_rec deklareeritakse andmetüübina 'emp_det'. Nüüd mahutab see muutuja väärtuse, mis sisaldab kõiki ülaltoodud 4 välja / veergu.
  • Koodirida 11: „guru99_emp_rec” välja „emp_no” täitmine väärtusega 1001.
  • Koodirida 12: „guru99_emp_rec” välja „emp_name” täitmine väärtusega XXX.
  • Koodirida 13: „guru99_emp_rec” välja „manager” täitmine väärtusega 1000.
  • Koodirida 14: välja „guru99_emp_rec” välja „palk” täitmine väärtusega 10000.
  • Koodirida 15-19: väljundis 'guru99_emp_rec' väärtuse kuvamine.

Näide 3: Kirje tüüp alamprogrammi taseme-rea taseme juurdepääsul

Selles näites vaatame, kuidas luua kirjetüüp alamprogrammi tasemel ja kuidas asendada see rea tasemena. Loome alamprogrammi tasemel kirjetüübi 'emp_det' ning kavatseme seda kasutada ka andmete täitmiseks ja kuvamiseks.

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;/

Koodi selgitus:

  • Koodirida 2–8 : kirjetüüp „emp_det” deklareeritakse veergudega emp_no, emp_name, palk ja andmetüübi NUMBER, VARCHAR2, NUMBER, NUMBER haldur.
  • Koodirida 9: muutuja guru99_emp_rec deklareeritakse andmetüübina 'emp_det'. Nüüd mahutab see muutuja väärtuse, mis sisaldab kõiki ülaltoodud 4 välja / veergu.
  • Koodirida 11: Tabeli emp täitmine andmetega 1002 kui emp_no, YYY kui emp_name, 15000 kui palk ja 1000 kui manager number.
  • Koodirida 12: ülaltoodud sisestustehingu sooritamine.
  • Koodirida 13: muutuja „guru99_emp_rec” täitmine rea taseme andmetena töötaja numbri 1002 valitud päringust.
  • Koodirida 15-19: väljundis 'guru99_emp_rec' väärtuse kuvamine.

Väljund:

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

Märkus . Kirjetüübile pääseb juurde ainult veerutasemel, suunates selle väärtuse mis tahes väljundrežiimi.