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 TYPEIS 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:
DECLARETYPEIS 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.