Inleiding tot PL / SQL-collecties

Ten eerste biedt PL / SQL, net als andere moderne programmeertalen, ook de mogelijkheid voor programmeurs om PL / SQL-collecties te gebruiken. In algemene termen is de verzameling dus een gegevensstructuur met een geordende groep elementen van hetzelfde gegevenstype en deze elementen zijn toegankelijk via indexen volgens de specifieke vereisten. Veelgebruikte collecties in de meeste programmeertalen zijn Arrays, Set, List en Queue, enz.

De PL / SQL-verzameling biedt veel voordelen voor zowel de programmeur als de gebruiker tijdens het opslaan en openen van de gegevens van vergelijkbare gegevenstypen in een toepassing. Als het nodig is om de gegevens in één keer te verwerken of een grote hoeveelheid gegevens te verwerken, zijn PL / SQL-collecties erg handig. Het vermindert ook de grootte en verwerkingssnelheid terwijl de gegevens worden opgeslagen en de elementen worden gebruikt. De elementen in verzamelingen zijn gemakkelijk toegankelijk via lussen en indexen. In tegenstelling tot arrays in andere programmeertalen, ondersteunt PL / SQL alleen eendimensionale collecties en worden de gegevens in de collecties geïdentificeerd door de subscripts (ook wel index in andere talen genoemd). Elk element wordt benaderd en verwerkt via dit unieke subscript.

Typen PL / SQL-collecties

De PL / SQL-collecties zijn van 3 typen die hieronder met syntaxis worden gegeven:

Geneste tabellen

Een geneste tabel is een PL / SQL-verzameling waarin de grootte niet is vastgelegd. Het is dus als een eendimensionale array, behalve dat de grootte in arrays is vastgelegd en beide dik en dun kan zijn. Het programmeerapparaat moet het geheugen elke keer uitbreiden voordat het wordt gebruikt met EXTEND Subscript in de geneste tabel begint met een geheel getal '1'.

Geneste tabellen vallen onder Persistent PL / SQL-collecties, wat betekent dat ze verder kunnen worden hergebruikt zoals opgeslagen in de database. De programmeur kan ook een array-element verwijderen en de tabel schaars maken, wat betekent dat geneste tabellen zowel compact als schaars kunnen zijn. De geneste tabellen kunnen binnen het PL / SQL-blok of op schemaniveau worden gedeclareerd.

Omdat er geen limiet is op de bovenste grootte in geneste tabellen, vallen ze onder de categorie Unbounded PL / SQL-collecties.

Syntaxis:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Arrays met variabele grootte of VARRAY's

VARRAY is de PL / SQL-verzameling waarin de grootte van de verzameling is vastgelegd zoals gedefinieerd in de definitie, zodat VARRAY's begrensde elementen worden genoemd in arrays worden opeenvolgend gevuld vanaf het subscript 1. In tegenstelling tot geneste tabellen biedt varrays minder flexibiliteit omdat ze dicht zijn enkel en alleen. Dus de programmeur kan geen enkel element ertussen verwijderen, ofwel hele varray wordt verwijderd of het kan vanaf het einde worden bijgesneden. Varrays moet worden geopend en opeenvolgend worden opgeslagen. Het kan worden gedefinieerd binnen het PL / SQL-blok of het schemaniveau. Net als geneste tabellen valt varrays onder de categorie permanente collecties, zodat ze kunnen worden hergebruikt en opgeslagen in de database.

Syntaxis:

TYPE typ_name IS VARRAY OF element_data_type;

Associatieve Arrays

Zoals de naam al doet vermoeden, worden associatieve arrays gebruikt om de waarden in sleutel / waarde-paren te houden. De gebruikte sleutel kan een string of een geheel getal zijn. Associatieve arrays worden ook een Index-by-tabel genoemd. Deze verzameling kan dicht of dun zijn. In associatieve arrays is de arraygrootte niet vast in het begin en hoeft het programmeerapparaat deze niet te initialiseren voordat deze wordt gebruikt. Een associatieve array valt onder de categorie niet-persistente collecties, wat betekent dat ze niet in de database zijn opgeslagen en niet opnieuw kunnen worden gebruikt, zodat ze worden gedefinieerd in het PL / SQL-blok en alleen in die specifieke sessie worden gebruikt. Deze arrays vallen onder de categorie onbeperkte collecties.

Syntaxis:

TYPE typ_name IS TABLE OF element_data_type;

Verzameling methoden

PL / SQL biedt een aantal vooraf gedefinieerde methoden om het werken met collecties eenvoudig te maken. Enkele van de methoden worden hieronder gegeven:

S.No.MethodenaamBeschrijving
1.COUNTHet geeft het aantal elementen terug dat in de verzameling aanwezig is
2.EERSTEHet retourneert het kleinste (eerste) indexnummer in de verzameling voor integer subscripts
3.LAATSTEHet retourneert het grootste (laatste) indexnummer in de verzameling voor integer subscripts.
4.BESTAAT (n)Het wordt gebruikt om te controleren of een bepaald element aanwezig is in de verzameling of niet. Het geeft WAAR terug als de n-elementen aanwezig zijn in de verzameling, ONWAAR indien niet.
5.PRIOR (n)Het retourneert het indexnummer dat de voorloper is van de index (n) gegeven door de gebruiker in de verzameling.
6.NEXT (n)Het retourneert het indexnummer dat de opvolger is van de index (n) die door de gebruiker in de verzameling is opgegeven.
7.TRIMHet wordt gebruikt om elementen uit de verzameling te verwijderen. TRIM verwijdert het laatste element uit de verzameling en TRIM (n) verwijdert het laatste n-element aan het einde van de verzameling.
8.DELETEHet wordt gebruikt om alle elementen uit de gegeven verzameling te verwijderen. Het zet het aantal collecties op 0 nadat alle elementen zijn verwijderd
9.DELETE (m, n)Het wordt gebruikt in het geval van associatieve arrays en geïndexeerde tabellen om alle elementen in het bereik van m tot n te verwijderen. Het retourneert null als m groter is dan n.
10.LIMIETHet wordt gebruikt om de maximale grootte van de verzameling te controleren.

Uitzonderingen voor verzameling

Hieronder staan ​​enkele van de uitzonderingen die het meest waarschijnlijk optreden tijdens het werken met collecties.

Naam uitzonderingEen scenario waarin een uitzondering ontstaat
GEEN DATA GEVONDENEen uitzondering ontstaat wanneer een subscript verwijst naar een element dat is verwijderd en niet meer bestaat.
VALUE_ERRORDe uitzondering treedt op wanneer de waarde van kolommen die proberen toegang te krijgen niet converteerbaar is naar het sleuteltype of wanneer een subscript nul is
COLLECTION_IS_NULLUitzondering ontstaat bij het werken aan een automatisch lege verzameling
SUBSCRIPT_BEYOND_CO UNTEen uitzondering ontstaat wanneer een subscript het maximale aantal van een aantal elementen in de verzameling overschrijdt.
SUBSCRIPT_OUTSIDE_LIM ITDe uitzondering doet zich voor wanneer u probeert te verwijzen met behulp van het indexnummer dat buiten het wettelijke bereik valt.
TOO_MANY_ROWSEen uitzondering ontstaat wanneer een SELECT in -instructie meer dan 1 rij retourneert.

Voordelen van collecties in PL / SQL

Enkele voordelen van PL / SQL-collecties worden hieronder gegeven:

  • Bovendien is een van de grootste voordelen van collecties dat het de systeemprestaties verbetert door de statische gegevens te cachen die regelmatig moeten worden benaderd.
  • Het belangrijkste is dat collecties nuttig zijn bij het werken met de grote gegevensset met hetzelfde gegevenstype waarop de gebruiker meerdere DML-bewerkingen moet uitvoeren.
  • Door de ene verzamelvariabele te gebruiken, kunnen we het aantal variabelen verminderen dat wordt gebruikt voor het opslaan van verschillende waarden en dus het opslaan van het geheugen.
  • Het uitvoeren van verschillende bewerkingen, zoals het opslaan en verwerken van gegevens, wordt eenvoudig via reeds beschikbare PL / SQL-verzamelmethoden.

Conclusie

Door de bovenstaande beschrijving kunt u een idee krijgen van wat de PL / SQL-verzameling is en de methoden die kunnen worden gebruikt in de PL / SQL-collecties. Voordat een PL / SQL-verzamelingstype in het programma wordt gebruikt, moet de ontwikkelaar eerst goed nadenken over het scenario voordat hij een type kiest. Hoewel het werken in PL / SQL-collecties niet moeilijk is, kunnen er op verschillende punten uitzonderingen ontstaan ​​waarvan de programmeur op de hoogte moet zijn en weet hoe ermee om te gaan.

Aanbevolen artikelen

Dit is een gids voor PL / SQL-collecties. Hier bespreken we de syntaxis, types, methoden en uitzonderingen van PL / SQL-collecties, samen met de voordelen. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Cursors in PL / SQL
  2. CASE-instructie in PL / SQL
  3. Vragen tijdens solliciteren bij Oracle PL / SQL
  4. PL / SQL-opdrachten