Bahasa pemrograman PL/SQL menyediakan struktur data yang disebut VARRAY, yang dapat menyimpan koleksi elemen dengan ukuran tetap dan tipe yang sama. Sebuah varray digunakan untuk menyimpan koleksi data yang terurut, namun seringkali lebih baik untuk memandang array sebagai koleksi variabel dengan tipe yang sama.
Semua varray terdiri dari lokasi memori yang berdekatan. Alamat terendah sesuai dengan elemen pertama dan alamat tertinggi sesuai dengan elemen terakhir.
Sebuah array adalah bagian dari tipe data koleksi dan mewakili array dengan ukuran variabel. Kami akan mempelajari jenis koleksi lainnya dalam bab berikutnya yang berjudul ‘PL/SQL Collections’.
Setiap elemen dalam varray memiliki indeks yang terkait. Ia juga memiliki ukuran maksimum yang dapat diubah secara dinamis.
Membuat Tipe Varray
Tipe varray dibuat dengan pernyataan CREATE TYPE. Anda harus menentukan ukuran maksimum dan tipe elemen yang disimpan dalam varray.
Syntax dasar untuk membuat tipe VARRAY pada level skema adalah sebagai berikut
CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) of <element_type>
yang dimana
- varray_type_name adalah nama atribut yang valid,
- n adalah jumlah elemen (maksimum) dalam varray,
- element_type adalah tipe data dari elemen-elemen dalam array.
Ukuran maksimum dari sebuah varray dapat diubah menggunakan pernyataan ALTER TYPE
contoh:
CREATE Or REPLACE TYPE namearray AS VARRAY(3) OF VARCHAR2(10); / Type created.
Syntax dasar untuk membuat tipe VARRAY dalam blok PL/SQL adalah sebagai berikut
TYPE varray_type_name IS VARRAY(n) of <element_type>
Contoh
TYPE namearray IS VARRAY(5) OF VARCHAR2(10); Type grades IS VARRAY(5) OF INTEGER;
Berikut adalah contoh program yang menggambarkan penggunaan varrays
DECLARE type namesarray IS VARRAY(5) OF VARCHAR2(10); type grades IS VARRAY(5) OF INTEGER; names namesarray; marks grades; total integer; BEGIN names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Azis'); marks:= grades(98, 97, 78, 87, 92); total := names.count; dbms_output.put_line('Total '|| total || ' Students'); FOR i in 1 .. total LOOP dbms_output.put_line('Student: ' || names(i) || ' Marks: ' || marks(i)); END LOOP; END; /
Output
Total 5 Students Student: Kavita Marks: 98 Student: Pritam Marks: 97 Student: Ayan Marks: 78 Student: Rishav Marks: 87 Student: Azis Marks: 92 PL/SQL procedure successfully completed.
Sumber https://www.tutorialspoint.com/plsql/plsql_arrays.htm