Hva er platetype?
En posttype er en kompleks datatype som lar programmereren lage en ny datatype med ønsket kolonnestruktur.
- Den grupperer en eller flere kolonner for å danne en ny datatype
- Disse kolonnene vil ha sitt eget navn og datatype
- En posttype kan godta dataene
- Som en enkelt plate som består av mange kolonner ELLER
- Den kan akseptere verdien for en bestemt kolonne i en post
- Posttype betyr ganske enkelt en ny datatype. Når posttypen er opprettet, lagres den som en ny datatype i databasen, og den samme skal brukes til å erklære en variabel i programmer.
- Den vil bruke nøkkelordet 'TYPE' for å instruere kompilatoren om at den lager den nye datatypen.
- Den kan opprettes på " databasenivå" som kan lagres som databaseobjekter, brukes over hele databasen, eller den kan opprettes på " underprogramnivåene" , som bare er synlig i underprogrammene.
- Datatype-posttypen kan også deklareres for tabellkolonnene, slik at enkeltkolonne kan inneholde de komplekse dataene.
- Dataene i denne datatypen kan nås ved å referere til deres variabelnavn etterfulgt av periodeoperatør (.) Etterfulgt av kolonnenavn, dvs. '
.
Syntaks for erklæring på databasenivå:
CREATE TYPEIS RECORD( ,);
I den første syntaksen kan vi se nøkkelordet 'OPPRETT TYPE' dette instruerer kompilatoren om å opprette platetypen med navnet "type_name_db" med den angitte kolonnen som et databaseobjekt.
Dette er gitt som en individuell uttalelse og ikke inne i noen blokk.
Syntaks for erklæring på underprogramnivå:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
I syntaksen lager vi platetypen med navnet "type_name" bare inne i underprogrammet.
I begge deklarasjonsmetoden er måten å definere kolonnen og datatypen på, lik.
Eksempel 1: OPPTAK Skriv inn som databaseobjekt
I dette programmet skal vi se hvordan du lager "Record type" som et databaseobjekt. Vi skal lage platetype 'emp_det' med fire kolonner. Kolonnene og deres datatype er som følger:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- Leder (NUMMER)
- LØNN (NUMMER)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Produksjon:
Type created
Kode Forklaring:
- Ovennevnte kode vil opprette typen emp_det som et databaseobjekt.
- Den vil ha 4 kolonner emp_no, emp_name, manager og lønn som definert.
- Nå ligner 'emp_det' annen datatype (som NUMBER, VARCHAR @ osv.) Og den er synlig i hele databasen. Derfor kan dette brukes i hele databasen for å erklære variabelen av denne typen.
Produksjon:
Opprettet typen 'emp_det' som posttype på databasenivå.
Eksempel 2: Posttype på underprogramnivå - Kolonnivå tilgang
I dette eksemplet skal vi se hvordan du lager en posttype på underprogramnivå og hvordan du fyller ut og henter verdiene fra den etter kolonnivå.
Vi skal lage 'emp_det' record_type på underprogramnivå, og vi skal bruke det samme til å fylle ut og vise data fra det.
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;/
Produksjon:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Kode Forklaring:
- Kodelinje 2-8 : Posttype 'emp_det' er erklært med kolonner emp_no, emp_name, lønn og manager for datatypen NUMBER, VARCHAR2, NUMBER, NUMBER.
- Kodelinje 9: variabelen guru99_emp_rec er erklært som 'emp_det' datatype. Nå kan denne variabelen inneholde verdien som inneholder alle de ovennevnte 4 feltene / kolonnene.
- Kodelinje 11: Fyll ut 'emp_no' -feltet til 'guru99_emp_rec' med verdien 1001.
- Kodelinje 12: Fyll ut 'emp_name' -feltet til 'guru99_emp_rec' med verdien XXX.
- Kodelinje 13: Fyll ut 'manager' -feltet til 'guru99_emp_rec' med verdien 1000.
- Kodelinje 14: Fyll ut 'lønnsfeltet til' guru99_emp_rec 'med verdi 10000.
- Kodelinje 15-19: Viser verdien av 'guru99_emp_rec' i utdata.
Eksempel 3: Record Type på Subprogram level-Row level access
I dette eksemplet skal vi se hvordan du lager en posttype på underprogramnivå og hvordan du fyller den ut som et radnivå. Vi skal lage 'emp_det' record_type på underprogramnivå, og vi skal bruke det samme til å fylle ut og vise data fra det.
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;/
Kode Forklaring:
- Kodelinje 2-8 : Posttype 'emp_det' er erklært med kolonner emp_no, emp_name, lønn og manager for datatypen NUMBER, VARCHAR2, NUMBER, NUMBER.
- Kodelinje 9: variabelen guru99_emp_rec er erklært som 'emp_det' datatype. Nå kan denne variabelen inneholde verdien som inneholder alle de ovennevnte 4 feltene / kolonnene.
- Kodelinje 11: Fyll ut tabellen emp med data 1002 som emp_no, YYY som emp_name, 15000 som lønn og 1000 som ledernummer.
- Kodelinje 12: Foreta ovennevnte innskuddstransaksjon.
- Kodelinje 13: Fyll ut variabelen 'guru99_emp_rec' som data på radnivå fra utvalgsspørringen for ansatt nummer 1002.
- Kodelinje 15-19: Viser verdien av 'guru99_emp_rec' i utdata.
Produksjon:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Merk: Du kan bare få tilgang til posttypen på kolonnivå mens du omdirigerer verdien til hvilken som helst utgangsmodus.