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

Koleksi Oracle PL/SQL - Buat Tabel Bersarang di Database

Di Oracle, tabel bersarang dapat disimpan sebagai kolom database. Ini berarti bahwa seluruh tabel bersarang terdapat dalam satu baris tabel database, dan setiap baris database dapat berisi tabel bersarang yang berbeda. Untuk menyimpan tabel bersarang dalam database, Anda harus menggunakan CREATE TYPE pernyataan untuk membuat tipe tabel bersarang, bukan pernyataan tipe dalam blok PL/SQL.

Dengan menggunakan CREATE TYPE , tipe disimpan dalam kamus data dan dengan demikian tersedia untuk digunakan sebagai tipe kolom. Contoh berikut mengilustrasikan cara membuat tabel bersarang sebagai kolom database.

Oracle PL/SQL - Membuat Tabel Bersarang di Database

CREATE TYPE BookObj AS OBJECT (
title VARCHAR2(40),
author VARCHAR2(40),
catalog_number NUMBER(4)
);

CREATE TYPE BookList AS TABLE OF BookObj;

CREATE TABLE course_material (
department CHAR(3),
course NUMBER(3),
required_reading BookList )
NESTED TABLE required_reading STORE AS required_tab;

Ada beberapa hal yang perlu diperhatikan tentang listing di atas dan membuat tabel bersarang di database:

  • Tipe tabel didesain dengan CREATE TYPE pernyataan sehingga dapat disimpan dalam kamus data.
  • Tipe tabel digunakan dalam definisi tabel, seperti objek kolom.
  • Untuk setiap tabel bertingkat dalam tabel database tertentu,  NESTED TABLE klausa diperlukan. Klausa ini menunjukkan nama tabel toko.

Tabel penyimpanan adalah tabel yang dihasilkan sistem yang digunakan untuk menyimpan data aktual dalam tabel bersarang. Data ini tidak disimpan sejajar dengan kolom tabel lainnya; itu disimpan secara terpisah.

required_reading kolom akan menyimpan REF ke dalam required_tab meja, tempat daftar buku akan disimpan. Untuk setiap baris course_material , required_reading berisi REF ke baris yang sesuai di required_tab.

CATATAN

Tabel toko (required_tab dalam contoh di atas) dapat berada di skema lain dan dapat memiliki parameter penyimpanan yang berbeda dari tabel utama. Tabel toko dapat dijelaskan, dan ada di user_tables , tetapi tidak dapat diakses secara langsung.

Jika Anda mencoba untuk menanyakan atau memodifikasi tabel toko secara langsung, Anda akan mendapatkan kesalahan Oracle "ORA-22812:tidak dapat mereferensikan tabel penyimpanan kolom tabel bersarang". Isi dari tabel toko dimanipulasi melalui SQL pada tabel utama.

Lihat juga:

  • Oracle PL/SQL – Koleksi (Tabel Bersarang)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memasukkan kolom pada posisi tertentu di Oracle tanpa menjatuhkan dan membuat ulang tabel?

  2. oracle -- Pisahkan beberapa nilai yang dipisahkan koma dalam tabel oracle menjadi beberapa baris

  3. Bagaimana cara mengarahkan output DBMS_OUTPUT.PUT_LINE ke file?

  4. hitung saldo berjalan dalam kueri oracle

  5. Apa itu Oracle Joins (Sql Joins)?