Kas yra įrašo tipas?
Įrašo tipas yra sudėtingas duomenų tipas, leidžiantis programuotojui sukurti naują duomenų tipą su norima stulpelių struktūra.
- Jis sugrupuoja vieną ar daugiau stulpelių, kad suformuotų naują duomenų tipą
- Šie stulpeliai turės savo pavadinimą ir duomenų tipą
- Įrašo tipas gali priimti duomenis
- Kaip vieną įrašą, kurį sudaro daug stulpelių ARBA
- Jis gali priimti vieno konkretaus įrašo stulpelio vertę
- Įrašo tipas paprasčiausiai reiškia naują duomenų tipą. Sukūrus įrašo tipą, jis bus saugomas kaip naujas duomenų tipas duomenų bazėje ir tas pats bus naudojamas deklaruojant kintamąjį programose.
- Jis naudos raktinį žodį „TYPE“, kad nurodytų kompiliatoriui, kad jis kuria naują duomenų tipą.
- Jis gali būti sukurtas „ duomenų bazės lygiu“, kuris gali būti saugomas kaip duomenų bazės objektai, naudojamas visoje duomenų bazėje, arba jį galima sukurti „ paprogramių lygmenyse“ , kuris matomas tik paprogramių viduje.
- Duomenų bazės lygio įrašo tipą taip pat galima deklaruoti lentelės stulpeliams, kad viename stulpelyje būtų sudėtingi duomenys.
- Šio tipo duomenis galima pasiekti nurodant jų kintamąjį_vardą, po kurio nurodomas laikotarpio operatorius (.), Po kurio pateikiamas stulpelio_pavadinimas, ty „<įrašo_tipo_kintamojo_vardas>.
Deklaravimo sintaksė duomenų bazės lygiu:
CREATE TYPEIS RECORD( ,);
Pirmojoje sintaksėje galime pamatyti raktinį žodį „CREATE TYPE“, kuris nurodo kompiliatoriui sukurti įrašo tipą pavadinimu „type_name_db“ su nurodytu stulpeliu kaip duomenų bazės objektą.
Tai pateikiama kaip atskiras sakinys, o ne bet kokio bloko viduje.
Deklaravimo sintaksė paprogramės lygiu:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
Sintaksėje įrašo tipą, pavadintą „type_name“, kuriame tik paprogramės viduje.
Abiem deklaravimo būdais stulpelio ir duomenų tipo apibrėžimo būdas yra panašus.
1 pavyzdys: ĮRAŠO tipas kaip duomenų bazės objektas
Šioje programoje pamatysime, kaip sukurti „Įrašo tipą“ kaip duomenų bazės objektą. Mes ketiname sukurti įrašo tipą „emp_det“ su keturiais stulpeliais. Stulpeliai ir jų duomenų tipas yra šie:
- EMP_NO (NUMBER)
- „EMP_NAME“ („VARCHAR2“ (150))
- VADYBININKAS (NUMERIS)
- ALGA (NUMBER)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Išvestis:
Type created
Kodo paaiškinimas:
- Minėtas kodas sukurs tipą emp_det kaip duomenų bazės objektą.
- Jame bus 4 stulpeliai emp_no, emp_name, vadovas ir atlyginimas, kaip apibrėžta.
- Dabar „emp_det“ yra panašus į kitus duomenų tipus (pvz., NUMBER, VARCHAR @ ir kt.). Jis matomas visoje duomenų bazėje. Taigi tai galima naudoti visoje duomenų bazėje deklaruojant šio tipo kintamąjį.
Išvestis:
Sukūrė „emp_det“ tipą kaip įrašo tipą duomenų bazės lygiu.
2 pavyzdys: Įrašo tipas paprogramės lygyje - prieiga prie stulpelio lygio
Šiame pavyzdyje mes pamatysime, kaip sukurti įrašo tipą paprogramės lygiu ir kaip iš jo užpildyti ir gauti vertes pagal stulpelių lygį.
Mes sukursime „emp_det“ įrašo tipą paprogramės lygyje ir naudosime tą patį, kad užpildytume ir rodytume iš jo gautus duomenis.
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;/
Išvestis:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Kodo paaiškinimas:
- 2–8 kodo eilutė : įrašo tipas „emp_det“ deklaruojamas su stulpeliais emp_no, emp_name, alga ir duomenų tipo NUMBER, VARCHAR2, NUMBER, NUMBER valdytoju.
- 9 kodo eilutė: kintamasis guru99_emp_rec deklaruojamas kaip „emp_det“ duomenų tipas. Dabar šis kintamasis gali laikyti vertę, kurioje yra visi aukščiau nurodyti 4 laukai / stulpeliai.
- 11 kodo eilutė: užpildykite „guru99_emp_rec“ lauką „emp_no“, kurio vertė yra 1001.
- 12 kodo eilutė: „guru99_emp_rec“ lauko „emp_name“ užpildymas reikšme XXX.
- Kodo 13 eilutė: „guru99_emp_rec“ laukelio „manager“ užpildymas, kurio vertė 1000.
- Kodo 14 eilutė: užpildykite „guru99_emp_rec“ lauką „atlyginimas“, kurio vertė yra 10000.
- Kodo eilutė 15–19: „guru99_emp_rec“ vertės rodymas išvestyje.
3 pavyzdys: įrašo tipas prieigai prie paprogramės lygio - eilutės lygio
Šiame pavyzdyje mes pamatysime, kaip sukurti įrašo tipą paprogramės lygiu ir kaip jį užpildyti kaip eilutės lygį. Mes sukursime „emp_det“ įrašo tipą paprogramės lygyje ir naudosime tą patį, kad užpildytume ir rodytume iš jo gautus duomenis.
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;/
Kodo paaiškinimas:
- 2–8 kodo eilutė : įrašo tipas „emp_det“ deklaruojamas su stulpeliais emp_no, emp_name, alga ir duomenų tipo NUMBER, VARCHAR2, NUMBER, NUMBER valdytoju.
- 9 kodo eilutė: kintamasis guru99_emp_rec deklaruojamas kaip „emp_det“ duomenų tipas. Dabar šis kintamasis gali laikyti vertę, kurioje yra visi aukščiau nurodyti 4 laukai / stulpeliai.
- 11 kodo eilutė: užpildykite lentelės „emp“ duomenis 1002 kaip „emp_no“, „YYY“ kaip „emp_name“, 15000 kaip atlyginimą ir „1000“ kaip vadybininko numerį.
- 12 kodo eilutė: įvykdoma aukščiau nurodyta įterpimo operacija.
- 13 kodo eilutė: „Guru99_emp_rec“ kintamojo užpildymas kaip eilutės lygio duomenys iš darbuotojo numerio 1002 pasirinktos užklausos.
- Kodo eilutė 15–19: „guru99_emp_rec“ vertės rodymas išvestyje.
Išvestis:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Pastaba: Įrašo tipą galima pasiekti tik stulpelio lygiu, nukreipiant jo vertę į bet kurį išvesties režimą.