Oracle PL / SQL ierakstu tips ar piemēriem

Satura rādītājs:

Anonim

Kas ir ieraksta tips?

Ieraksta tips ir sarežģīts datu tips, kas ļauj programmētājam izveidot jaunu datu tipu ar vēlamo kolonnu struktūru.

  • Tas grupē vienu vai vairākas kolonnas, lai izveidotu jaunu datu tipu
  • Šīm kolonnām būs savs nosaukums un datu tips
  • Ierakstu tips var pieņemt datus
    • Kā viens ieraksts, kas sastāv no daudzām kolonnām VAI
    • Tas var pieņemt vienas konkrētas ieraksta kolonnas vērtību
  • Ieraksta tips vienkārši nozīmē jaunu datu tipu. Kad ieraksta tips ir izveidots, tas tiks saglabāts kā jauns datu tips datu bāzē, un to pašu izmanto mainīgā deklarēšanai programmās.
  • Tas izmantos atslēgvārdu “TYPE”, lai norādītu kompilatoram, ka tas veido jauno datu tipu.
  • To var izveidot " datu bāzes līmenī", ko var uzglabāt kā datu bāzes objektus, izmantot visā datu bāzē vai arī to var izveidot " apakšprogrammas līmeņos" , kas ir redzams tikai apakšprogrammu iekšienē.
  • Datu bāzes līmeņa ierakstu tipu var deklarēt arī tabulas kolonnām, lai vienā kolonnā būtu sarežģīti dati.
  • Šāda veida datiem var piekļūt, atsaucoties uz to mainīgo_nosaukumu, kam seko perioda operators (.), Kam seko kolonnas_nosaukums, ti, “.

Deklarācijas sintakse datu bāzes līmenī:

CREATE TYPE  IS RECORD( ,);

Pirmajā sintaksē mēs varam redzēt atslēgvārdu “CREATE TYPE”, kas kompilatoram uzdod izveidot ieraksta tipu ar nosaukumu “type_name_db” ar norādīto kolonnu kā datu bāzes objektu.

Tas tiek dots kā atsevišķs paziņojums, nevis kādā blokā.

Deklarācijas sintakse apakšprogrammas līmenī:

DECLARETYPE  IS RECORD( ,);BEGIN;END;

Sintaksē ieraksta veidu ar nosaukumu "type_name" veidojam tikai apakšprogrammā.

Abās deklarēšanas metodēs kolonnas un datu veida noteikšanas veids ir līdzīgs.

1. piemērs: Ieraksta tips kā datu bāzes objekts

Šajā programmā mēs redzēsim, kā izveidot "Ieraksta tipu" kā datu bāzes objektu. Mēs izveidosim ieraksta veidu “emp_det” ar četrām kolonnām. Kolonnas un to datu tips ir šāds:

  • EMP_NO (NUMBER)
  • EMP_NAME (VARCHAR2 (150))
  • PĀRVALDĪTĀJS (NUMBER)
  • ALGA (NUMBER)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/
Izeja:
Type created

Koda skaidrojums:

  • Iepriekš minētais kods izveidos veidu emp_det kā datu bāzes objektu.
  • Tam būs 4 kolonnas emp_no, emp_name, vadītājs un alga, kā noteikts.
  • Tagad 'emp_det' ir līdzīgs citiem datu tipiem (piemēram, NUMBER, VARCHAR @ utt.). Un tas ir redzams visā datu bāzē. Tādējādi to var izmantot visā datu bāzē, lai deklarētu šāda veida mainīgo.

Izeja:

Datubāzes līmenī kā ieraksta tips izveidots tips 'emp_det'.

2. piemērs: Ieraksta tips apakšprogrammas līmenī - kolonnu līmeņa piekļuve

Šajā piemērā mēs redzēsim, kā izveidot ierakstu tipu apakšprogrammas līmenī un kā aizpildīt un iegūt vērtības no tā pēc kolonnu līmeņa.

Apakšprogrammas līmenī mēs izveidosim ierakstu “emp_det” un to izmantosim, lai aizpildītu un parādītu datus no tā.

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;/

Izeja:

Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000

Koda skaidrojums:

  • Kodu rinda 2-8 : ieraksta veids “emp_det” tiek deklarēts ar kolonnām emp_no, emp_name, algu un datu tipa NUMBER, VARCHAR2, NUMBER, NUMBER pārvaldnieku.
  • 9. koda rindiņa: mainīgais guru99_emp_rec tiek deklarēts kā “emp_det” datu tips. Tagad šim mainīgajam var būt vērtība, kurā ir visi iepriekš minētie 4 lauki / kolonnas.
  • 11. koda rindiņa: aizpildiet lauka “guru99_emp_rec” lauku “emp_no” ar vērtību 1001.
  • 12. koda rindiņa: aizpildiet lauka “guru99_emp_rec” lauku “emp_name” ar vērtību XXX.
  • 13. koda rindiņa: aizpildiet lauka “guru99_emp_rec” pārvaldnieku ar vērtību 1000.
  • 14. koda rindiņa: aizpildiet lauka “guru99_emp_rec” algu ar vērtību 10000.
  • Kodu rinda 15-19: izvadē parāda “guru99_emp_rec” vērtību.

3. piemērs: Ieraksta tips pieejas apakšprogrammas līmenī - rindas līmenī

Šajā piemērā mēs redzēsim, kā izveidot ierakstu tipu apakšprogrammas līmenī un kā to aizpildīt kā rindas līmeni. Apakšprogrammas līmenī mēs izveidosim ierakstu “emp_det” un to izmantosim, lai aizpildītu un parādītu datus no tā.

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;/

Koda skaidrojums:

  • Kodu rinda 2-8 : ieraksta veids “emp_det” tiek deklarēts ar kolonnām emp_no, emp_name, algu un datu tipa NUMBER, VARCHAR2, NUMBER, NUMBER pārvaldnieku.
  • 9. koda rindiņa: mainīgais guru99_emp_rec tiek deklarēts kā “emp_det” datu tips. Tagad šim mainīgajam var būt vērtība, kurā ir visi iepriekš minētie 4 lauki / kolonnas.
  • 11. koda rindiņa: aizpildiet tabulas emp ar datiem 1002 kā emp_no, YYY kā emp_name, 15000 kā algu un 1000 kā vadītāja numuru.
  • 12. koda rindiņa: veic iepriekš minēto ievietošanas darījumu.
  • 13. koda rindiņa: mainīgā “guru99_emp_rec” aizpildīšana kā rindas līmeņa dati no atlasītā vaicājuma darbinieka skaitlim 1002.
  • Kodu rinda 15-19: izvadē parāda “guru99_emp_rec” vērtību.

Izeja:

Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000

Piezīme: Ieraksta veidam var piekļūt tikai kolonnu līmenī, vienlaikus novirzot tā vērtību uz jebkuru izvades režīmu.