Oracle PL / SQL -kohdistin: implisiittinen, eksplisiittinen, kohdistin silmukalle (esimerkki)

Sisällysluettelo:

Anonim

Mikä on CURSOR PL / SQL: ssä?

Kohdistin on osoitin tälle kontekstialueelle. Oracle luo kontekstialueen SQL-käskyn käsittelemiseksi, joka sisältää kaikki tiedot käskystä.

PL / SQL antaa ohjelmoijan hallita kontekstialuetta kohdistimen kautta. Kohdistin pitää SQL-käskyn palauttamat rivit. Kohdistimen pitämien rivien joukkoa kutsutaan aktiiviseksi joukoksi. Nämä kohdistimet voidaan myös nimetä niin, että niihin voidaan viitata koodin toisesta paikasta.

Tässä opetusohjelmassa opit-

  • Implisiittinen kohdistin
  • Selkeä kohdistin
  • Kohdistimen määritteet
  • FOR Loop Cursor -lauseke

Kohdistinta on kahden tyyppistä.

  • Implisiittinen kohdistin
  • Selkeä kohdistin

Implisiittinen kohdistin

Aina kun DML-operaatioita esiintyy tietokannassa, luodaan implisiittinen kohdistin, joka pitää rivit, joihin kyseinen operaatio vaikuttaa. Näitä kohdistimia ei voida nimetä, joten niitä ei voida ohjata tai ohjata koodin toisesta paikasta. Voimme viitata vain viimeisimpään kohdistimeen kohdistimen määritteiden kautta.

Selkeä kohdistin

Ohjelmoijilla on oikeus luoda nimetty kontekstialue DML-toimintojen suorittamiseksi, jotta sitä voidaan hallita paremmin. Selkeä kohdistin on määriteltävä PL / SQL-lohkon ilmoitusosassa, ja se luodaan SELECT-käskylle, jota on käytettävä koodissa.

Alla on vaiheita, jotka liittyvät nimenomaisten kohdistinten kanssa työskentelyyn.

  • Kohdistimen julistaminen

    Kohdistimen ilmoittaminen tarkoittaa yksinkertaisesti yhden nimetyn kontekstialueen luomista ilmoitusosassa määritetylle SELECT-käskylle. Tämän kontekstialueen nimi on sama kuin kohdistimen nimi.

  • Kohdistimen avaaminen

    Kohdistimen avaaminen opastaa PL / SQL: ää varaamaan muistin tälle kohdistimelle. Se tekee kohdistimen valmiiksi hakemaan tietueet.

  • Haetaan tietoja kohdistimesta

    Tässä prosessissa 'SELECT' -lauseke suoritetaan ja haetut rivit tallennetaan varattuun muistiin. Näitä kutsutaan nyt aktiivisiksi ryhmiksi. Tietojen hakeminen kohdistimesta on ennätystasoinen toiminta, mikä tarkoittaa, että pääsemme tietoihin tietueittain.

    Jokainen hakulauseke hakee yhden aktiivisen ryhmän ja sisältää tietyn tietueen tiedot. Tämä lause on sama kuin SELECT-käsky, joka hakee tietueen ja määrittää muuttujalle INTO-lausekkeessa, mutta se ei aiheuta poikkeuksia.

  • Kohdistimen sulkeminen

    Kun kaikki tietueet on nyt haettu, meidän on suljettava kohdistin, jotta tälle kontekstialueelle varattu muisti vapautuu.

Syntaksi:

DECLARECURSOR  IS ;BEGINFOR I IN LOOP… END LOOP;END;
  • Edellä olevassa syntaksissa ilmoitusosa sisältää kohdistimen ilmoituksen.
  • Kohdistin luodaan 'SELECT' -lausekkeelle, joka annetaan kohdistimen ilmoituksessa.
  • Suoritusosassa ilmoitettu kohdistin asetetaan FOR-silmukkaan ja silmukkamuuttuja 'I' käyttäytyy tässä tapauksessa kohdistimen muuttujana.

Esimerkki 1 : Tässä esimerkissä heijastetaan koko työntekijän nimi emp-taulukosta käyttämällä kohdistin-FOR-silmukkaa.

DECLARECURSOR guru99_det IS SELECT emp_name FROM emp;BEGINFOR lv_emp_name IN guru99_detLOOPDbms_output.put_line(‘Employee Fetched:‘||lv_emp_name.emp_name);END LOOP;END;/

Tuotos

Employee Fetched:BBBEmployee Fetched:XXXEmployee Fetched:YYY

Koodin selitys:

  • Koodirivi 2 : Kohdistimen guru99_det julistaminen käskylle 'SELECT emp_name FROM emp'.
  • Koodirivi 4 : Kohdistimen 'FOR' -silmukan rakentaminen silmukan muuttujalla lv_emp_name.
  • Koodirivi 5: Työntekijän nimen tulostaminen silmukan jokaisessa iteraatiossa.
  • Koodirivi 8: Poistu silmukasta

Huomaa: Cursor-FOR -silmukassa kohdistimen määritteitä ei voida käyttää, koska FOR-silmukka suorittaa implisiittisesti kohdistimen avaamisen, hakemisen ja sulkemisen.