Vad är Record Type?
En posttyp är en komplex datatyp som gör det möjligt för programmeraren att skapa en ny datatyp med önskad kolumnstruktur.
- Den grupperar en eller flera kolumner för att bilda en ny datatyp
- Dessa kolumner kommer att ha sitt eget namn och datatyp
- En posttyp kan acceptera data
- Som en enda post som består av många kolumner ELLER
- Det kan acceptera värdet för en viss kolumn i en post
- Posttyp betyder helt enkelt en ny datatyp. När posttypen har skapats lagras den som en ny datatyp i databasen och densamma ska användas för att deklarera en variabel i program.
- Den använder nyckelordet 'TYP' för att instruera kompilatorn att den skapar den nya datatypen.
- Den kan skapas på " databasnivå" som kan lagras som databasobjekt, användas överallt i databasen eller den kan skapas på " underprogramnivåer" , som bara syns i underprogrammen.
- Datatypen på databasenivå kan också deklareras för tabellkolumnerna så att enskilda kolumner kan innehålla komplexa data.
- Data i denna datatyp kan nås genom att hänvisa till deras variabelnamn följt av periodoperatör (.) Följt av kolumnnamn, dvs '
. '
Syntax för deklaration på databasnivå:
CREATE TYPEIS RECORD( ,);
I den första syntaxen kan vi se nyckelordet 'CREATE TYPE' som instruerar kompilatorn att skapa posttypen "type_name_db" med den angivna kolumnen som databasobjekt.
Detta ges som ett individuellt uttalande och inte i något block.
Syntax för deklaration på underprogramnivå:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
I syntaxen skapar vi posttypen med namnet "typnamn" bara i underprogrammet.
I båda deklarationsmetoden är sättet att definiera kolumnen och datatypen liknande.
Exempel 1: RECORD Skriv som databasobjekt
I det här programmet kommer vi att se hur man skapar "Record type" som ett databasobjekt. Vi ska skapa posttyp 'emp_det' med fyra kolumner. Kolumnerna och deras datatyp är följande:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- CHEF (NUMMER)
- LÖN (NUMMER)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Produktion:
Type created
Kodförklaring:
- Ovanstående kod skapar typen emp_det som ett databasobjekt.
- Den kommer att ha fyra kolumner emp_no, emp_name, chef och lön enligt definition.
- Nu liknar 'emp_det' andra datatyper (som NUMBER, VARCHAR @, etc.) Och det syns i hela databasen. Därför kan detta användas i hela databasen för att deklarera variabeln av denna typ.
Produktion:
Skapade typen 'emp_det' som posttyp på databasenivå.
Exempel 2: Inspelningstyp på underprogramnivå - åtkomst till kolumnnivå
I det här exemplet ska vi se hur man skapar en posttyp på underprogramnivå och hur man fyller i och hämtar värdena från den efter kolumnivå.
Vi ska skapa 'emp_det' record_type på underprogramnivå, och vi kommer att använda detsamma för att fylla ut och visa data från den.
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;/
Produktion:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Kodförklaring:
- Kodrad 2-8 : Posttyp 'emp_det' deklareras med kolumner emp_no, emp_name, lön och chef för datatyp NUMBER, VARCHAR2, NUMBER, NUMBER.
- Kodrad 9: variabel guru99_emp_rec förklaras som datatyp 'emp_det'. Nu kan denna variabel innehålla värdet som innehåller alla ovanstående 4 fält / kolumner.
- Kodrad 11: Fyll i fältet 'emp_no' för 'guru99_emp_rec' med värdet 1001.
- Kodrad 12: Fyll i fältet 'emp_name' för 'guru99_emp_rec' med värdet XXX.
- Kodrad 13: Fyll i "manager" -fältet "guru99_emp_rec" med värdet 1000.
- Kodrad 14: Fyll i fältet 'lön' för 'guru99_emp_rec' med värdet 10000.
- Kodrad 15-19: Visar värdet för 'guru99_emp_rec' i utdata.
Exempel 3: Inspelningstyp på subprogramnivå - radnivååtkomst
I det här exemplet ska vi se hur man skapar en posttyp på underprogramnivå och hur man fyller i den som en radnivå. Vi ska skapa 'emp_det' record_type på underprogramnivå, och vi kommer att använda detsamma för att fylla ut och visa data från den.
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;/
Kodförklaring:
- Kodrad 2-8 : Posttyp 'emp_det' deklareras med kolumner emp_no, emp_name, lön och chef för datatyp NUMBER, VARCHAR2, NUMBER, NUMBER.
- Kodrad 9: variabel guru99_emp_rec förklaras som datatyp 'emp_det'. Nu kan denna variabel innehålla värdet som innehåller alla ovanstående 4 fält / kolumner.
- Kodrad 11: Fyller tabellen emp med data 1002 som emp_no, YYY som emp_name, 15000 som lön och 1000 som manager nummer.
- Kodrad 12: Genomför ovanstående insättningstransaktion.
- Kodrad 13: Att fylla variabeln 'guru99_emp_rec' som en radnivådata från väljfrågan för anställd nummer 1002.
- Kodrad 15-19: Visar värdet för 'guru99_emp_rec' i utdata.
Produktion:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Obs !: Posttypen kan endast nås på kolumnnivå medan dess omdirigering omdirigeras till valfritt utmatningsläge.