Što je vrsta zapisa?
Vrsta zapisa složeni je tip podataka koji programeru omogućuje stvaranje novog tipa podataka sa željenom strukturom stupaca.
- Grupira jedan ili više stupaca kako bi oblikovao novi tip podataka
- Ti će stupci imati svoje ime i vrstu podataka
- Vrsta zapisa može prihvatiti podatke
- Kao jedan zapis koji se sastoji od mnogo stupaca ILI
- Može prihvatiti vrijednost za jedan određeni stupac zapisa
- Vrsta zapisa jednostavno znači novi tip podataka. Jednom kada se stvori vrsta zapisa, ona će se pohraniti kao novi tip podataka u bazu podataka i ista će se koristiti za deklariranje varijable u programima.
- Upotrijebit će ključnu riječ "TIP" da bi sastavljaču naložio da kreira novi tip podataka.
- Može se stvoriti na " razini baze podataka" koja se može pohraniti kao objekti baze podataka, koristiti u cijeloj bazi podataka ili se može stvoriti na " razini potprograma" , što je vidljivo samo unutar potprograma.
- Vrsta zapisa na razini baze podataka također se može deklarirati za stupce tablice tako da jedan stupac može sadržavati složene podatke.
- Podatcima u ovom tipu podataka može se pristupiti pozivanjem na njihovo ime_ varijable iza kojeg slijedi operator perioda (.), A zatim slijedi ime_ stupca, tj. '
. '
Sintaksa za deklaraciju na razini baze podataka:
CREATE TYPEIS RECORD( ,);
U prvoj sintaksi možemo vidjeti ključnu riječ 'CREATE TYPE', što nalaže sastavljaču da kreira vrstu zapisa s nazivom "type_name_db" s navedenim stupcem kao objektom baze podataka.
Ovo se daje kao pojedinačna izjava, a ne unutar bilo kojeg bloka.
Sintaksa za deklaraciju na razini potprograma:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
U sintaksi stvaramo vrstu zapisa s nazivom "type_name" samo unutar potprograma.
U obje metode deklaracije način definiranja stupca i tipa podataka je sličan.
Primjer 1: Vrsta SNIMA kao objekt baze podataka
U ovom programu vidjet ćemo kako stvoriti "vrstu zapisa" kao objekt baze podataka. Stvorit ćemo tip zapisa 'emp_det' s četiri stupca. Stupci i njihov tip podataka su sljedeći:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- VODITELJ (BROJ)
- PLAĆA (BROJ)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Izlaz:
Type created
Objašnjenje koda:
- Gornji kôd stvorit će tip emp_det kao objekt baze podataka.
- Imat će 4 stupca emp_no, emp_name, menadžera i plaću kako je definirano.
- Sada je 'emp_det' sličan drugoj vrsti podataka (poput BROJA, VARCHAR @, itd.) I vidljiv je u cijeloj bazi podataka. Stoga se ovo može koristiti u cijeloj bazi podataka za deklariranje varijable ovog tipa.
Izlaz:
Stvorio je tip 'emp_det' kao tip zapisa na razini baze podataka.
Primjer 2: Vrsta zapisa na razini potprograma - pristup stupcu
U ovom ćemo primjeru vidjeti kako stvoriti vrstu zapisa na razini potprograma i kako popuniti i dohvatiti vrijednosti iz njega po razini stupca.
Stvorit ćemo vrstu zapisa 'emp_det' na razini potprograma, a koristit ćemo istu za popunjavanje i prikaz podataka 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;/
Izlaz:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Objašnjenje koda:
- Redak koda 2-8 : Vrsta zapisa 'emp_det' deklarira se sa stupcima emp_no, emp_name, plaća i upravitelj podataka tipa BROJ, VARCHAR2, BROJ, BROJ.
- Redak koda 9: varijabla guru99_emp_rec deklarirana je kao vrsta podataka 'emp_det'. Sada ova varijabla može sadržavati vrijednost koja sadrži sva gore navedena 4 polja / stupca.
- Redak koda 11: Popunjavanje polja 'emp_no' polja 'guru99_emp_rec' s vrijednošću 1001.
- Redak koda 12: Popunjavanje polja 'emp_name' polja 'guru99_emp_rec' s vrijednošću XXX.
- Redak koda 13: Popunjavanje polja 'upravitelj' u 'guru99_emp_rec' s vrijednošću 1000.
- Redak 14: Popunjavanje polja "plaća" od "guru99_emp_rec" s vrijednošću 10000.
- Redak koda 15-19: Prikazivanje vrijednosti 'guru99_emp_rec' u izlazu.
Primjer 3: Vrsta zapisa na razini potprograma - pristup na razini reda
U ovom ćemo primjeru vidjeti kako stvoriti vrstu zapisa na razini potprograma i kako ga popuniti kao razinu retka. Stvorit ćemo vrstu zapisa 'emp_det' na razini potprograma, a koristit ćemo istu za popunjavanje i prikaz podataka 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;/
Objašnjenje koda:
- Redak koda 2-8 : Vrsta zapisa 'emp_det' deklarira se sa stupcima emp_no, emp_name, plaća i upravitelj podataka tipa BROJ, VARCHAR2, BROJ, BROJ.
- Redak koda 9: varijabla guru99_emp_rec deklarirana je kao vrsta podataka 'emp_det'. Sada ova varijabla može sadržavati vrijednost koja sadrži sva gore navedena 4 polja / stupca.
- Linijska oznaka 11: Popunjavanje tablice emp podacima 1002 kao emp_no, YYY kao emp_name, 15000 kao plaća i 1000 kao broj menadžera.
- Redak koda 12: Počinjanje gornje umetnute transakcije.
- Redak koda 13: Popunjavanje varijable 'guru99_emp_rec' kao podataka na razini retka iz upita za odabir za broj zaposlenika 1002.
- Redak koda 15-19: Prikazivanje vrijednosti 'guru99_emp_rec' u izlazu.
Izlaz:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Napomena: vrsti zapisa može se pristupiti samo na razini stupca dok se njegova vrijednost preusmjerava u bilo koji izlazni način.