VARRAY diluncurkan di Oracle 8i pada tahun 1998 sebagai versi modifikasi dari kumpulan tipe tabel Nested yang telah kita bahas di blog sebelumnya.
Bacaan yang Disarankan:Cara Membuat Tabel Bersarang –
- Sebagai elemen Blok PL/SQL
- Sebagai Objek Basis Data
- Menggunakan Tipe Data Buatan Pengguna
Sekarang Anda juga dapat menguji pengetahuan Anda tentang subjek dengan mengikuti tes di sini.
VARRAY merupakan topik yang penting karena terlihat pada umumnya selalu ada soal dalam ujian sertifikasi. Untuk meminimalkan kebingungan, pertama-tama kita akan melihat sekilas intro koleksi VARRAYs.
VARRAYs yang merupakan akronim dari Array Berukuran Variabel diperkenalkan di Oracle 8i pada tahun 1998 sebagai format tabel bersarang yang dimodifikasi. Modifikasi utama dapat dilihat pada orientasi penyimpanan. Tidak ada perubahan nyata dalam implementasi tetapi orientasi penyimpanannya benar-benar berbeda dibandingkan dengan tabel bersarang.
Tidak seperti tabel bersarang yang memerlukan tabel eksternal untuk penyimpanannya, VARRAY disimpan sejajar dengan catatan induknya sebagai nilai mentah di tabel induk. Artinya, klausa STORE AS tidak diperlukan lagi. Oh, sungguh melegakan, tidak ada IO yang tidak perlu dan di atas itu peningkatan kinerja.
Dapatkah kita menyimpan dan menggunakan kembali VARRAY?
Mirip dengan Nested Tables VARRAYs adalah tipe Persistent Collection yang berarti mereka dapat dibuat sebagai objek database yang dapat disimpan untuk digunakan nanti. VARRAY juga dapat dibuat sebagai anggota Blok PL/SQL. Cakupan VARRAY yang dideklarasikan di dalam blok PL/SQL terbatas pada blok di mana ia dibuat.
Apakah VARRAY dibatasi atau tidak?
Tidak seperti tabel bersarang, VARRAY adalah bentuk koleksi yang dibatasi. Dengan dibatasi maksud saya, Anda harus memutuskan berapa banyak elemen yang ingin Anda simpan dalam koleksi Anda saat mendeklarasikannya. Sedangkan pada nested table yang merupakan tipe unbounded collection tidak ada batas atas jumlah elemen.
Mekanisme Penyimpanan VARRAYs
Mekanisme penyimpanan VARRAY adalah perbedaan terbesar yang menjadikannya pilihan yang lebih baik daripada tabel Bersarang. Tidak seperti tabel bersarang yang memerlukan tabel eksternal untuk penyimpanannya, VARRAY disimpan sejajar dengan record induknya sebagai nilai mentah di tabel induk. Ini berarti tidak ada persyaratan STORE AS klausa atau tabel penyimpanan terpisah.
Penyimpanan in-line VARRAY membantu mengurangi Input/Output (I/O) disk yang membuat kinerja VARRAY lebih efisien daripada tabel bersarang. Tetapi ketika VARRAY melebihi data 4K maka Oracle mengikuti mekanisme penyimpanan out-of-line dan menyimpan VARRAY sebagai LOB.
Sintaks untuk membuat PL/SQL VARRAYs
Di bagian ini kita akan melihat sintaks untuk membuat VARRAY sebagai
- Objek Basis Data dan
- Anggota Blok PL/SQL.
Anda dapat menuju ke Video tentang topik yang sama di saluran YouTube saya di mana saya menjelaskan kedua sintaks ini secara mendetail.
VARRAY sebagai Objek Basis Data
CREATE [OR REPLACE] TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;
VARRAY sebagai anggota Blok PL/SQL
DECLARE TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;
Kedua sintaks di atas sama dengan tabel bersarang kecuali di sini kita memiliki klausa tambahan yaitu Size_Limit. Batas ukuran adalah bilangan bulat numerik yang akan menunjukkan jumlah maksimum elemen yang dapat ditampung oleh VARRAY Anda.
Selalu ingat seperti tabel bersarang, kita dapat mendeklarasikan VARRAY hanya di bagian deklarasi blok PL/SQL.
Bagaimana cara mengubah batas ukuran koleksi jenis VARRAY?
Batas ukuran VARRAY dapat diubah menggunakan pernyataan ALTER TYPE DDL.
ALTER TYPE type_name MODIFY LIMIT new-size-limit [INVALIDATE | CASCADE]
Di mana:
ALTER TYPE adalah frasa khusus yang menunjukkan kepada kompiler tindakan DDL mana yang ingin Anda lakukan.
NAMA TIPE adalah nama tipe yang ingin Anda ubah.
UBAH BATAS adalah klausa yang memberi tahu kompiler bahwa pengguna ingin mengubah batas ukuran.
BATASAN-UKURAN BARU adalah bilangan bulat yang akan menjadi batas ukuran baru VARRAY Anda.
BATALKAN klausa adalah klausa opsional yang akan membatalkan validasi semua objek dependen tanpa mekanisme pemeriksaan apa pun.
klausa CASCADE lagi adalah klausa opsional yang akan menyebarkan perubahan ke tipe dan tabel dependen.
Bagaimana cara menghapus koleksi jenis VARRAY?
Untuk menghapus jenis VARRAY, Anda dapat mengambil bantuan dari pernyataan DROP DDL.
DROP TYPE type_name [FORCE];
Di mana:
Jenis Jatuhkan
Adalah pernyataan DDL yang dapat digunakan untuk menghapus semua jenis yang dibuat di database Anda.
Ketik nama
Nama jenis adalah nama jenis yang sudah dibuat yang ingin Anda hapus.
Paksa
Tentukan FORCE untuk menghapus jenis meskipun memiliki objek database dependen. Oracle Database menandai UNUSED semua kolom bergantung pada jenis yang akan dibuang, dan kolom tersebut menjadi tidak dapat diakses. Ingat operasi ini tidak dapat dipulihkan dan dapat menyebabkan data dalam tabel atau kolom dependen menjadi tidak dapat diakses.
Semoga Anda belajar sesuatu yang baru. Sekarang Anda dapat menguji pengetahuan Anda tentang subjek dengan mengikuti tes di sini. Tolong bantu kami untuk berkembang dengan membagikan blog ini di sosial Anda. Dengan cara ini Anda juga dapat membantu teman Anda dalam belajar. Terima kasih &semoga harimu menyenangkan!