Oracle PL / SQL vrste zapisa s primjerima

Sadržaj:

Anonim

Š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 TYPE  IS 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:

DECLARETYPE  IS 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.