Mikä on tietueen tyyppi?
Tietuetyyppi on monimutkainen tietotyyppi, jonka avulla ohjelmoija voi luoda uuden tietotyypin halutulla sarakerakenteella.
- Se ryhmittää yhden tai useamman sarakkeen muodostaakseen uuden tietotyypin
- Näillä sarakkeilla on oma nimi ja tietotyyppi
- Tietuetyyppi voi hyväksyä tiedot
- Yhtenä tietueena, joka koostuu monista sarakkeista TAI
- Se voi hyväksyä tietyn tietyn sarakkeen arvon
- Tietuetyyppi tarkoittaa yksinkertaisesti uutta tietotyyppiä. Kun tietuetyyppi on luotu, se tallennetaan uutena tietotyyppinä tietokantaan ja samaa käytetään muuttujan ilmoittamiseen ohjelmissa.
- Se käyttää avainsanaa 'TYPE' opettaakseen kääntäjää luomaan uuden tietotyypin.
- Se voidaan luoda " tietokantatasolla", joka voidaan tallentaa tietokantaobjekteina, käyttää kaikkialla tietokannassa tai se voidaan luoda " aliohjelmatasoilla" , joka näkyy vain alaohjelmien sisällä.
- Tietokantatason tietuetyyppi voidaan ilmoittaa myös taulukon sarakkeille, jotta yksittäinen sarake mahtuu monimutkaiset tiedot.
- Näiden tietotyyppien tietoihin pääsee viittaamalla niiden muuttujan_nimiin, jota seuraa pisteoperaattori (.), Jota seuraa sarakkeen_nimi, eli '
. '
Syntaksi ilmoitusta varten tietokantatasolla:
CREATE TYPEIS RECORD( ,);
Ensimmäisessä syntaksissa voimme nähdä avainsanan "CREATE TYPE", joka kehottaa kääntäjää luomaan tietuetyypin nimeltä "type_name_db" määritetyllä sarakkeella tietokantaobjektina.
Tämä annetaan yksittäisenä lauseena eikä minkään lohkon sisällä.
Syntaksi ilmoitukselle aliohjelmatasolla:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
Syntaksiin luomme tietuetyypin nimeltä "type_name" vain alaohjelman sisällä.
Molemmissa ilmoitusmenetelmissä sarakkeen ja tietotyypin määrittelytapa on samanlainen.
Esimerkki 1: TALLENNUSTyyppi tietokantaobjektina
Tässä ohjelmassa aiomme nähdä, miten "Tietueen tyyppi" luodaan tietokantaobjektina. Aiomme luoda tietuetyypin 'emp_det', jossa on neljä saraketta. Sarakkeet ja niiden tietotyyppi ovat seuraavat:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- JOHTAJA (NUMERO)
- PALKKA (NUMERO)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Tuotos:
Type created
Koodin selitys:
- Yllä oleva koodi luo tyypin emp_det tietokantaobjektiksi.
- Siinä on 4 saraketta emp_no, emp_name, manager ja palkka määritellyllä tavalla.
- Nyt 'emp_det' on samanlainen kuin muu tietotyyppi (kuten NUMBER, VARCHAR @ jne.) Ja se näkyy koko tietokannassa. Siksi tätä voidaan käyttää koko tietokannassa tämän tyyppisen muuttujan ilmoittamiseksi.
Tuotos:
Luonut tietuetyypiksi 'emp_det' tietokantatasolla.
Esimerkki 2: Tietuetyyppi aliohjelmatasolla - Saraketasoinen pääsy
Tässä esimerkissä aiomme nähdä, kuinka luoda tietuetyyppi aliohjelmatasolla ja kuinka täyttää ja noutaa arvot siitä saraketasoittain.
Aiomme luoda 'emp_det' tietueetyypin aliohjelmatasolle, ja aiomme käyttää sitä tietojen täyttämiseen ja sen tietojen näyttämiseen.
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;/
Tuotos:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Koodin selitys:
- Koodirivi 2-8 : Tietuetyyppi 'emp_det' ilmoitetaan sarakkeilla emp_no, emp_name, palkka ja tietotyypin NUMBER, VARCHAR2, NUMBER, NUMBER ylläpitäjä.
- Koodirivi 9: guru99_emp_rec-muuttuja ilmoitetaan tietotyypiksi 'emp_det'. Nyt tähän muuttujaan mahtuu arvo, joka sisältää kaikki yllä olevat 4 kenttää / saraketta.
- Koodirivi 11: Täytä kentän 'guru99_emp_rec' emp_no kenttä arvolla 1001.
- Koodirivi 12: Täytä kentän 'guru99_emp_rec' 'emp_name' kenttä arvolla XXX.
- Koodirivi 13: Guru99_emp_rec-kentän 'manager' -kentän täyttäminen arvolla 1000.
- Koodirivi 14: Guru99_emp_rec-arvon '' palkka '' kentän täyttäminen arvolla 10000.
- Koodirivi 15-19: Näytetään 'guru99_emp_rec' -arvon tulos.
Esimerkki 3: Tietuetyyppi aliohjelmataso-rivitasolla
Tässä esimerkissä aiomme nähdä, kuinka luoda tietuetyyppi aliohjelmatasolla ja kuinka täyttää se rivitasona. Aiomme luoda 'emp_det' tietueetyypin aliohjelmatasolle, ja aiomme käyttää sitä tietojen täyttämiseen ja sen tietojen näyttämiseen.
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;/
Koodin selitys:
- Koodirivi 2-8 : Tietuetyyppi 'emp_det' ilmoitetaan sarakkeilla emp_no, emp_name, palkka ja tietotyypin NUMBER, VARCHAR2, NUMBER, NUMBER ylläpitäjä.
- Koodirivi 9: guru99_emp_rec-muuttuja ilmoitetaan tietotyypiksi 'emp_det'. Nyt tähän muuttujaan mahtuu arvo, joka sisältää kaikki yllä olevat 4 kenttää / saraketta.
- Koodirivi 11: Taulukkotunnuksen täyttäminen tiedoilla 1002 muodossa emp_no, VVV emp_nimi, 15000 palkkana ja 1000 johtajanumerona.
- Koodirivi 12: Edellä olevan lisäystapahtuman tekeminen.
- Koodirivi 13: Muuttujan 'guru99_emp_rec' täyttäminen rivitason tiedoina työntekijänumeron 1002 valintakyselystä.
- Koodirivi 15-19: Näytetään 'guru99_emp_rec' -arvon tulos.
Tuotos:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Huomaa: Tietuetyyppiin pääsee vain saraketasolla samalla, kun sen arvo ohjataan mihin tahansa tulostustilaan.