Oracle Buat Tabel Temp

Oracle Buat Tabel Temp



Tabel sementara global sangat membantu saat menyimpan data sementara yang hanya diperlukan untuk transaksi atau durasi sesi. Tidak seperti tabel biasa, tabel sementara global secara otomatis dihapus saat sesi atau transaksi berakhir. Jadi, tabel tersebut tidak perlu dihapus secara eksplisit seperti tabel normal. Namun, tabel sementara global hanya dapat dilihat oleh sesi saat ini, sehingga tidak dapat diakses oleh sesi atau pengguna lain.

Di Oracle, tabel sementara global adalah jenis tabel khusus yang dibuat menggunakan pernyataan 'buat tabel sementara global'. Pernyataan ini mirip dengan pernyataan 'buat tabel' biasa tetapi menyertakan kata kunci 'sementara global' untuk menentukan bahwa tabel tersebut adalah tabel sementara global.







Sintaks pernyataan 'CREATE GLOBAL TEMPORARY TABLE' adalah sebagai berikut:



BUAT TABEL SEMENTARA GLOBAL table_name (
tipe data kolom1 [NULL | BUKAN NULL],
tipe data kolom2 [NULL | BUKAN NULL],
...
) [ON COMMIT {HAPUS | PRESERVE} BARIS];

Dalam sintaks ini, nama_tabel adalah nama tabel sementara global yang ingin Anda buat. kolom1, kolom2, dst., adalah nama dan tipe data kolom dalam tabel.



Klausa ON COMMIT menentukan apakah baris dalam tabel akan dihapus atau dipertahankan saat transaksi saat ini dilakukan. Mesin database akan menggunakan opsi ON COMMIT DELETE ROWS jika klausa ON COMMIT tidak ditentukan.





Seperti disebutkan, perlu diingat bahwa data dalam tabel sementara bersifat pribadi. Ini berarti bahwa tidak ada sesi lain selain yang membuat tabel yang dapat mengaksesnya.

Membuat Contoh Tabel Sementara Global

Mari kita temukan beberapa contoh praktis menggunakan pernyataan buat tabel sementara di database Oracle.



Pertimbangkan contoh kueri yang ditunjukkan di bawah ini:

BUAT TABEL SEMENTARA GLOBAL temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date TANGGAL BUKAN NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT HAPUS BARIS;

Pada contoh di atas, kami membuat tabel sementara menggunakan opsi ON COMMIT DELETE ROWS.

Kami kemudian dapat memasukkan beberapa data sampel sebagai:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (3, DATE '2022-10-03', 130);

Setelah itu, Anda dapat melakukan transaksi sebagai:

MELAKUKAN;

Setelah melakukan, mesin database akan memotong semua data dalam tabel sementara sebagaimana ditentukan dalam klausa komit.

Contoh 2

Contoh berikut menunjukkan cara membuat tabel yang mempertahankan baris pada komit:

BUAT TABEL SEMENTARA GLOBAL temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date TANGGAL BUKAN NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT PRESERVE ROWS ;

Kami kemudian dapat menambahkan baris sampel dan melakukan seperti yang ditunjukkan:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) NILAI (3, DATE '2022-10-03', 130);

MELAKUKAN;

Dalam hal ini, data harus disimpan setelah operasi komit, seperti yang ditunjukkan oleh pernyataan pemilihan di bawah ini:

PILIH * DARI TEMP_SALES;

Keluaran:

Kesimpulan

Pernyataan 'buat tabel sementara' adalah alat yang ampuh untuk membuat tabel sementara di Oracle. Tabel sementara berguna untuk menyimpan data sementara yang hanya diperlukan untuk transaksi atau sesi. Pernyataan 'buat tabel sementara' memungkinkan Anda menentukan struktur dan kolom tabel sementara dan menentukan bagaimana baris akan ditangani saat transaksi dilakukan. Akibatnya, penggunaan tabel sementara dapat meningkatkan kinerja dan efisiensi kueri dan aplikasi Anda serta mengurangi jumlah ruang penyimpanan permanen yang diperlukan di database Anda.