Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara Membuat VARRAY Sebagai Objek Database Di Database Oracle

Cakupan VARRAY yang dibuat sebagai anggota blok PL/SQL terbatas pada blok di mana ia dibuat, itu berarti kita tidak dapat menggunakan VARRAY ini di luar bloknya atau bahkan menggunakannya kembali dan itu adalah kelemahan terbesarnya. Jadi, lanjutkan &baca terus untuk mengetahui bagaimana kami dapat mengatasi kelemahan VARRAY ini.

Kelemahan ini dapat dengan mudah diatasi jika kita dapat menemukan cara untuk membuat VARRAY di luar blok PL/SQL dan menyimpannya secara permanen ke dalam skema. Untungnya kita dapat mencapai kedua tujuan tersebut dengan membuat VARRAY sebagai objek database. Itulah tepatnya yang akan kita pelajari dalam tutorial ini.

Dalam tutorial ini kita akan belajar –

  • Cara membuat VARRAY sebagai objek database.
  • Cara menggunakan varray itu.
  • Cara memasukkan data ke dalam VARRAY.
  • Cara mengambil data ke (dari) VARRAY
  • Cara memperbarui data VARRAY.

Mari kita mulai dengan langkah pertama.

Bagaimana Cara Membuat VARRAY sebagai Objek Database?

	SET SERVEROUTPUT ON;
	CREATE OR REPLACE TYPE dbObj_vry IS VARRAY (5) OF NUMBER;
	/

Kode di atas pada eksekusi yang berhasil akan membuat VARRAY dengan nama dbObj_vry yang akan memiliki batas ukuran 5 elemen dan tipe datanya adalah NUMBER. VARRAY ini memiliki cakupan yang lebih luas dan dapat digunakan tidak hanya di dalam blok PL/SQL tetapi juga dengan objek skema lainnya.

Bagaimana Cara Menggunakan VARRAY yang Dibuat sebagai Objek Basis Data?

Manfaat mendefinisikan VARRAY sebagai objek database adalah bahwa ia dapat direferensikan dari program apa pun yang memiliki izin untuk menggunakannya. Anda dapat menggunakan VARRAY dengan tabel, record, atau bahkan dengan blok PL/SQL.

Mari kita lakukan contohnya:

Contoh 1. Bagaimana cara mendefinisikan kolom tabel menggunakan VARRAY?

CREATE TABLE calendar(
    day_name        VARCHAR2(25),
    day_date        dbObj_vry
);
/

Pada kode di atas kita membuat tabel dengan nama Calendar yang memiliki dua kolom day_name dan day_date. Kolom pertama dapat menampung data tipe data VARCHAR2 sedangkan kolom kedua dapat menyimpan data tipe dbObj_vry yang merupakan VARRAY.

Info:Apa yang dimaksud dengan mendefinisikan kolom tabel sebagai tipe VARRAY?
Mendefinisikan kolom tabel sebagai tipe VARRAY berarti kolom tersebut dapat menampung 'n' jumlah nilai ke dalamnya. Di mana 'n' sama dengan batas ukuran varray itu. Dalam kasus kami, batas ukuran VARRAY adalah 5 yang berarti kolom 'Tanggal Hari' dari Kalender tabel dapat menampung 5 nilai.

Bagaimana cara memasukkan data ke dalam VARRAY?

INSERT INTO calendar ( day_name, day_date ) 
VALUES ( 'Sunday', dbObj_vry (7, 14, 21, 28) );    

Menyisipkan pernyataan DML ini akan menyisipkan baris ke dalam tabel Kalender. Memasukkan data ke dalam kolom pertama 'Nama Hari' yang merupakan tipe data varchar2 itu mudah. Anda hanya perlu menulis data yang diinginkan dan melampirkannya ke dalam tanda kutip tunggal. Namun tidak demikian halnya dengan kolom kedua 'Tanggal Hari' yang bertipe VARRAY. Untuk memasukkan data ke dalam kolom yang bertipe VARRAY, Anda harus terlebih dahulu menulis nama varray dan memasukkan datanya.

Juga, Anda harus memastikan empat hal

  1. Data yang Anda berikan harus diapit di dalam tanda kurung.
  2. Tipe data data harus sesuai dengan tipe data elemen VARRAY Anda yang dalam kasus kami adalah NUMBER.
  3. Jumlah elemen yang Anda sisipkan ke dalam kolom harus kurang dari atau sama dengan batas ukuran VARRAY. Dalam kasus kami ini adalah 5 dan kami memasukkan 4 elemen ke dalam kolom yang benar-benar ok. Tetapi jika saya memasukkan 6 elemen ke dalam kolom maka akan ada kesalahan.
  4. Jika memasukkan banyak data ke dalam kolom VARRAY, pastikan untuk memisahkan elemen satu sama lain menggunakan titik koma.

Bagaimana cara mengambil data dari VARRAY?

Data dapat diambil menggunakan pernyataan SELECT. Pernyataan SELECT yang ditulis dengan benar akan berhasil. Misalnya

SELECT * FROM calendar;

Ini akan mengambil semua data dari kalender tabel.

Jika Anda ingin menampilkan data yang disimpan ke dalam kolom, yang menyimpan data tipe VARRAY, dalam format relasional maka Anda dapat mengambil bantuan ekspresi TABLE. Misalnya

SELECT 
    tab1.day_name, 
    vry.column_value AS "Date"
FROM calendar tab1, TABLE (tab1.day_date) vry;

Pernyataan SELECT ini akan menampilkan data dari kedua kolom dalam format relasional. Ekspresi TABLE dapat membuka instance koleksi dan mewakili baris objek dalam format relasional.

Bagaimana cara memperbarui data kolom jenis VARRAY?

Memperbarui nilai kolom tipe VARRAY cukup sederhana. Contoh di bawah ini akan menunjukkan cara memperbarui nilai kolom tanggal_hari.

UPDATE calendar 
SET day_date = dbObj_vry(10,14,21,28) 
WHERE day_name = 'Sunday';

Contoh 2. Bagaimana cara menggunakan VARRAY dengan blok PL/SQL?

Dalam contoh di atas kita belajar, bagaimana menggunakan VARRAY yang dibuat sebagai objek Database untuk mendefinisikan kolom dari sebuah tabel. Sekarang kita akan melihat bagaimana menggunakan varray yang sama di dalam blok PL/SQL.

DECLARE
    vry_obj dbObj_vry    := dbObj_vry();
BEGIN
    FOR i IN 1..vry_obj.LIMIT
    LOOP
        vry_obj.EXTEND; 
        vry_obj(i):= 10*i;
        DBMS_OUTPUT.PUT_LINE(vry_obj(i));    
    END LOOP;
END;
/

Anda telah melihat contoh ini di tutorial terakhir. Tidak ada perubahan besar di sini kecuali bahwa kali ini daripada mendefinisikan VARRAY di dalam blok, kami membuatnya sebagai objek database mandiri. Saya sarankan Anda untuk melihat tutorial terakhir di mana saya menjelaskan kode di atas secara rinci.

Itulah tutorial PL/SQL tentang cara membuat VARRAY sebagai objek Database di Oracle. Semoga Anda menikmati membaca, jika demikian, pastikan untuk membagikan blog ini di media sosial Anda dengan teman-teman Anda. Terima kasih &semoga harimu menyenangkan!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manajer Konkuren Oracle

  2. Data Warehousing ETL Data Profiling dengan Oracle Warehouse Builder

  3. Menggunakan LIKE dalam klausa Oracle IN

  4. Tambahkan Tanda Mata Uang £, $ ke bidang tertentu ORACLE

  5. Perbedaan antara VARCHAR2(10 CHAR) dan NVARCHAR2(10)