PL /SQL programmeringsspråk gir en datastruktur kalt VARRAY, som kan lagre en fast størrelse sekvensiell innsamling av elementer av samme type. En varray brukes til å lagre en ordnet samling av data, men det er ofte mer nyttig å tenke på en matrise som en samling av variabler av samme type.
Alle varrays bestå av sammenhengende minneplasser. Lavest adresse tilsvarer det første elementet og det høyeste adresse til det siste elementet.
En matrise er en del av samlingen typedata og det står for variabel størrelse arrays. Vi vil studere andre innsamlingstyper i et senere kapittel 'PL /SQL Samlinger'.
Hvert element i en varray har en indeks knyttet til den. Det har også en maksimal størrelse som kan endres dynamisk.
Opprette en Varray Type
En varray type er opprettet med CREATE TYPE uttalelse. Du må angi maksimal størrelse og type elementer som er lagret i varray.
Den grunnleggende syntaks for å skape en VRRAY typen på skjemaet nivå:
CREATE OR REPLACE TYPE varray_type_name ER VARRAY (n) av < ELEMENT_TYPE >
Hvor, etter
< p> varray_type_name
er et gyldig attributt navn,
n
er antall elementer (maksimum) i varray, etter
ELEMENT_TYPE
er datatypen av elementene i matrisen.
Maksimal størrelse med en varray kan endres ved hjelp av ALTER TYPE . statement
For eksempel, etter CREATE eller erstatte TYPE namearray AS VARRAY (3) VARCHAR2 (10); /Type opprettet
Den grunnleggende syntaks for å skape en VRRAY type innenfor en PL /SQL. blokken er:
TYPE varray_type_name ER VARRAY (n) av < ELEMENT_TYPE >
For eksempel:
TYPE namearray ER VARRAY (5) AV VARCHAR2 (10), type karakterer ER VARRAY (5) Heltall;
Eksempel 1
Følgende program illustrerer bruk varrays:
ERKLÆRER typen namesarray ER VARRAY (5) AV VARCHAR2 (10); Type karakterer ER VARRAY (5) Heltall; Navnene namesarray; markerer karakterer; total heltall; BEGIN navn: = namesarray ('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz'); merker: = karakterer (98, 97, 78, 87, 92); Totalt: = names.count; dbms_output.put_line ('Total' || total || 'Students'); FOR jeg i en .. total LOOP dbms_output.put_line ('Student:' || navn (i) || 'Marks:' || merker (i)); END LOOP; END; /
Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
Student: Kavita Marks: 98Student: Pritam Marks: 97Student: Ayan Marks: 78Student: Rishav Marks: 87Student: Aziz Marks. 92PL /SQL-prosedyren ble fullført
Merk:
I orakel miljø, er startindeks for varrays alltid 1.
Du kan initialisere varray elementer ved hjelp konstruktøren metoden i varray type, som har samme navn som den varray.
Varrays er endimensjonale matriser.
< li>
En varray er automatisk NULL når den er deklarert, og må initialiseres før dens elementer kan henvises.
Eksempel 2
Elementer av en varray kan også være en% ROWTYPE av noen databasetabell eller% TYPE av noen databasetabell feltet. Følgende eksempel illustrerer konseptet:
Vi vil bruke KUNDER tabell lagret i vår database som:
Velg * fra kunder; + ---- + ---------- + ----- + ----------- + ---------- + | ID | NAME | AGE | ADRESSE | LØNN | + ---- + ---------- + ----- + ----------- + ---------- + | 1 | Ramesh | 32 | Ahmedabad | 2000.00 || 2 | Khilan | 25 | Delhi | 1500.00 || 3 | Kaushik | 23 | Kota | 2000.00 || 4 | Chaitali | 25 | Mumbai | 6500.00 || 5 | Hardik | 27 | Bhopal | 8500.00 || 6 | Komal | 22 | MP | 4500.00 | + ---- + ---------- + ----- + ----------- + ---------- +
Etter eksempel gjør bruk av markøren
, som du vil studere i detalj i et eget kapittel
ERKLÆRER MARKØR- c_customers er SELECT navn FROM kunder.; typen c_list er varray (6) av customers.name% type; NAME_LIST c_list: = c_list (); teller heltall: = 0; BEGIN for N i c_customers LOOP teller: = teller + 1; name_list.extend; NAME_LIST (counter): = n.name; dbms_output.put_line ('Customer (' || teller || '):' || NAME_LIST (counter)); END LOOP; END; /
Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
Customer (1): Ramesh Kunde (2): Khilan Customer (3): Kaushik Customer (4) : Chaitali Customer (5): Hardik Customer (6): KomalPL /SQL-prosedyren ble fullført.