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

Cara Membuat Tabel Bersarang Menggunakan Tipe Data Buatan Pengguna Di Database Oracle

Hai teman-teman! Hari ini kita akan belajar cara membuat kumpulan tipe tabel bersarang menggunakan tipe data yang ditentukan pengguna. Semoga Anda bersenang-senang dengan tutorial terakhir di mana kita mempelajari proses pembuatan tabel bersarang dengan tipe data primitif. Saya sangat menyarankan Anda untuk melihat tutorial itu karena kita akan menggunakan konsep dari sana.

Mirip dengan tipe data primitif, tabel bersarang dapat dibuat menggunakan tipe data yang ditentukan pengguna juga. Untuk demonstrasi kami akan menggunakan pengguna Oracle Object. Objek tidak memerlukan pengenalan, jika Anda pernah mempelajari Konsep OOP. Di Oracle, seperti bahasa pemrograman lainnya, tipe objek adalah tipe tipe data yang bekerja dengan cara yang sama seperti tipe data lain seperti Char, Varchar2, Number dll. tetapi dengan lebih banyak fleksibilitas.

Untuk membuat Objek Oracle, kami menggunakan pernyataan 'Buat Jenis' yang lama dan tepercaya.

CREATE OR REPLACE TYPE object_type AS OBJECT (
  obj_id  NUMBER,
  obj_name  VARCHAR2(10)
);
/

Pernyataan di atas akan membuat objek oracle dengan nama 'tipe objek' dengan dua atribut obj_id dan obj_name pada eksekusi yang berhasil. Tipe data ini kemudian dapat digunakan untuk membuat tabel bersarang.

CREATE OR REPLACE TYPE My_NT IS TABLE OF object_type;
/

Saya pikir jika Anda memeriksa tutorial terakhir maka Anda akan menemukan pernyataan di atas ini sangat familiar, kecuali tipe elemen yang merupakan tipe data primitif di sana. Di sini kita menggunakan tipe data yang ditentukan pengguna yang merupakan Objek Oracle.

Pernyataan di atas telah dijelaskan secara rinci dalam tutorial terakhir yang dapat Anda periksa di sini.

Apa artinya membuat tabel bersarang menggunakan Objek Oracle?

Setiap kali Anda membuat tabel bersarang menggunakan Objek Oracle maka atribut Objek menjadi kolom dari tabel itu. Misalnya, dalam kasus kami, kami membuat tabel bersarang 'My_NT' menggunakan tipe data yang ditentukan pengguna yang merupakan Objek Oracle 'Object_Type' yang memiliki dua atribut obj_id dan obj_name. Kedua atribut objek ini akan bertindak sebagai kolom tabel. Gambar berikut akan membantu Anda memahami hal ini dengan lebih jelas.

Sekarang kita telah membuat tabel bersarang menggunakan tipe data yang ditentukan pengguna, sekarang saatnya untuk mengerjakannya.

CREATE TABLE Base_Table(
  tab_id  NUMBER,
  tab_ele My_NT
)NESTED TABLE tab_ele STORE AS stor_tab_1;
/

Tabel di atas bernama 'Base_Table' adalah tabel sederhana yang memiliki 2 kolom 'tab_id' dan 'tab_ele'. Kolom pertama bertipe Number Datatype sedangkan kolom kedua bertipe Nested Table. Ini berarti kolom kedua berisi tabel di dalamnya dan tabel itu adalah tabel Bersarang kami 'My_Nt'

Meskipun 'Base_Table' ini adalah tabel sederhana tetapi salah satu kolomnya berisi tabel bersarang di dalamnya yang menimbulkan beberapa pertanyaan seperti:

Bagaimana cara memasukkan data ke dalam tabel? Bagaimana cara memperbarui data tabel? Atau bagaimana cara mengambil data dari tabel? Mari kita coba mencari tahu jawaban atas semua pertanyaan ini satu per satu.

Bagaimana cara memasukkan data ke tabel bersarang?

Ya, saya setuju bahwa memasukkan data ke dalam tabel yang memiliki kolom tipe tabel bersarang bisa jadi rumit tapi entah bagaimana kita harus menemukan cara melakukannya. Sebagai tabel tanpa data tidak ada gunanya bagi kita. Benar? Mari kita lihat bagaimana kita bisa melakukannya.

 INSERT INTO base_table (tab_id, tab_ele) VALUES
 (801,  -- value for 1st colum 
   My_NT (object_type (1,'Superman') -- values for 2nd column )
 );

Seperti yang Anda lihat dalam pernyataan INSERT ini semuanya sama dengan DML Sisipkan normal kecuali baris nomor 3 tempat kami memasukkan data ke kolom kedua tabel. Untuk memasukkan data ke dalam kolom yang bertipe Tabel Bersarang Anda harus terlebih dahulu menulis nama tabel bersarang Anda yang dalam hal ini adalah 'My_NT' kemudian Anda harus menulis nama Objek Oracle Anda yang di sini adalah 'Tipe_Objek' diikuti dengan nilai yang ingin Anda masukkan ke dalam tabel Anda. Jangan lupa untuk mencocokkan tanda kurung untuk nama tabel dan nama objek, jika tidak, Anda akan mendapatkan kesalahan.

Bagaimana cara memperbarui nilai tabel bersarang?

UPDATE base_table SET tab_ele = My_NT(object_type(1,'SpiderMan')) WHERE tab_id = 801; 

Pernyataan DML di atas akan memperbarui nilai yang sesuai pada eksekusi yang berhasil.

Bagaimana cara mengambil data dari tabel bersarang?

Anda cukup menjalankan pernyataan Select di tabel Anda untuk mendapatkan datanya.

Select tab_id, tab_ele FROM base_table;

Gambar berikut akan menunjukkan kepada Anda hasil yang dikembalikan dari tabel ini.

Seperti yang Anda lihat, pernyataan SELECT ini akan menunjukkan kepada Anda data dari kolom yang merupakan tipe data primer tetapi hanya nama tabel bersarang Anda bersama dengan Objek Oracle dari kolom yang Anda definisikan sebagai tipe Tabel Bersarang. Anda dapat dengan mudah mengatasi masalah ini dengan menggunakan ekspresi TABLE seperti ini.

SELECT * FROM TABLE(
  SELECT tab_ele FROM Base_Table WHERE tab_id = 801
)

Eksekusi kueri di atas yang berhasil akan menampilkan data dari kolom kedua tabel Anda 'Base_Table' dalam format relasional.

Itu saja untuk tutorial ini semoga Anda menikmati dan mempelajari sesuatu yang baru. Pastikan untuk berlangganan dan mendaftar. 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. Refresh / Memperbarui layar formulir di Oracle D2k Forms 6i

  2. Bagaimana cara menambahkan 10 detik di SQL current_timestamp ( Oracle )

  3. Oracle:Prosedur tersimpan Java mengirim Pesan JMS

  4. Bagaimana mengantisipasi dan menghindari kutipan tunggal ' di oracle

  5. Penyedia Oracle untuk Oledb hilang di VS 2015 Shell