Dalam PL/SQL, VARRAY (tatasusunan saiz boleh ubah) ialah sejenis koleksi yang boleh menyimpan bilangan elemen tetap. Setiap elemen dalam VARRAY disimpan secara berurutan dan semua elemen adalah daripada jenis data yang sama.
Ciri-ciri VARRAY:
Saiz Maksimum Tetap: Apabila anda mentakrifkan VARRAY, anda menentukan bilangan maksimum elemen yang boleh disimpan. Anda tidak boleh melebihi had ini.
Berjujukan: Elemen dalam VARRAY disimpan dan diakses dalam susunan tertentu, bermula dari indeks 1.
Homogen: Semua elemen dalam VARRAY mestilah daripada jenis data yang sama.
Berindeks Padat: VARRAY sentiasa berpenduduk padat. Ini bermakna tiada jurang antara indeks.
Disimpan dalam Pangkalan Data Oracle: Apabila digunakan dalam lajur pangkalan data, VARRAY disimpan sebaris dengan data baris jadual.
Sintaks untuk VARRAY dalam PL/SQL
Anda mula-mula menentukan jenis VARRAY, menyatakan bilangan elemen yang boleh disimpan dan jenis data elemen.
TYPE varray_name ADALAH VARRAY(max_size) OF element_type;
varray_name: Nama jenis VARRAY.
max_size: Bilangan maksimum elemen yang boleh disimpan dalam VARRAY.
elemen_jenis: Jenis data bagi elemen yang disimpan dalam VARRAY.
Setelah jenis VARRAY diisytiharkan, anda boleh mengisytiharkan pembolehubah jenis itu dan memulakannya dengan nilai.
ISYTIHKAN
TYPE employee_varray ADALAH VARRAY(5) OF VARCHAR2(30); -- Pengisytiharan jenis VARRAY dengan saiz maksimum 5
nama_pekerja_pekerja_varray := employee_varray('John', 'Jane'); -- Memulakan dengan 2 elemen
BERMULA
-- Kenyataan untuk menggunakan VARRAY
TAMAT;
Operasi pada VARRAY:
Berikut ialah beberapa operasi biasa yang boleh anda lakukan pada VARRAY:
EXTEND(n): Menambah n elemen pada penghujung VARRAY.
COUNT: Mengembalikan bilangan elemen semasa dalam VARRAY.
TRIM(n): Mengalih keluar n elemen dari penghujung VARRAY.
PERTAMA dan TERAKHIR: Mengembalikan indeks pertama dan terakhir dalam VARRAY.
Contoh: Mengisytiharkan dan Menggunakan VARRAY
ISYTIHKAN
-- Isytiharkan jenis VARRAY yang boleh memuatkan sehingga 5 elemen VARCHAR2(50)
TYPE employee_varray ADALAH VARRAY(5) OF VARCHAR2(50);
-- Declare a variable of this VARRAY type and initialize it with two values employee_names employee_varray := employee_varray('John', 'Jane');
MULAKAN
-- Tambahkan lebih banyak elemen pada VARRAY
nama_pekerja.EXTEND(3); -- Panjangkan tatasusunan dengan 3 elemen lagi
nama_pekerja(3) := 'Sam';
nama_pekerja(4) := 'Peter';
nama_pekerja(5) := 'Lucy';
-- Print all the names in the VARRAY FOR i IN 1..employee_names.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Employee ' || i || ': ' || employee_names(i)); END LOOP; -- Trim 1 element from the end of the VARRAY employee_names.TRIM(1); DBMS_OUTPUT.PUT_LINE('After trimming 1 element:'); -- Print remaining names in the VARRAY FOR i IN 1..employee_names.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Employee ' || i || ': ' || employee_names(i)); END LOOP;
TAMAT;
/
Penjelasan:
Pengisytiharan Jenis VARRAY: Kami mengisytiharkan employee_varray jenis VARRAY yang boleh memuatkan sehingga 5 elemen jenis VARCHAR2(50).
Permulaan: Kami memulakan pembolehubah nama_pekerja dengan dua nama: 'John' dan 'Jane'.
EXTEND: Kami menggunakan kaedah EXTEND(3) untuk memanjangkan VARRAY untuk memegang 3 lagi elemen, memberi ruang untuk sejumlah 5 elemen.
Mengakses Elemen: Kami menetapkan nilai pada kedudukan baharu (3 hingga 5) dan mencetak semua elemen menggunakan gelung.
TRIM: Kaedah TRIM(1) digunakan untuk mengalih keluar elemen terakhir daripada VARRAY, mengurangkan bilangan elemen daripada 5 kepada 4.
Output:
Pekerja 1: John
Pekerja 2: Jane
Pekerja 3: Sam
Pekerja 4: Peter
Pekerja 5: Lucy
Selepas memangkas 1 elemen:
Pekerja 1: John
Pekerja 2: Jane
Pekerja 3: Sam
Pekerja 4: Peter
Isi Penting:
VARRAY berguna apabila anda mengetahui saiz maksimum koleksi anda lebih awal.
Akses Berjujukan: Elemen dalam VARRAY diakses menggunakan indeksnya.
Melanjutkan dan Memotong: Anda boleh menambah atau mengalih keluar elemen secara dinamik daripada VARRAY menggunakan EXTEND dan TRIM.
Atas ialah kandungan terperinci VARRAY (Susun atur saiz boleh ubah) - Koleksi dalam PLSQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!