Oracle Create Temp Table

Oracle Create Temp Table



Jadual sementara global berguna apabila menyimpan data sementara yang hanya diperlukan untuk transaksi atau tempoh sesi. Tidak seperti jadual biasa, jadual sementara global digugurkan secara automatik apabila sesi atau transaksi tamat. Jadi, mereka tidak perlu digugurkan secara eksplisit seperti jadual biasa. Walau bagaimanapun, jadual sementara global hanya kelihatan kepada sesi semasa, jadi ia tidak boleh diakses oleh sesi atau pengguna lain.

Dalam Oracle, jadual sementara global ialah jenis jadual khas yang dibuat menggunakan pernyataan 'buat jadual sementara global'. Pernyataan ini serupa dengan pernyataan 'buat jadual' biasa tetapi termasuk kata kunci 'sementara global' untuk menentukan bahawa jadual itu ialah jadual sementara global.







Sintaks pernyataan 'CREATE GLOBAL TEMPORARY JADUAL' adalah seperti berikut:



BUAT JADUAL SEMENTARA GLOBAL nama_jadual (
lajur1 jenis data [NULL | BUKAN NULL],
lajur2 jenis data [NULL | BUKAN NULL],
...
) [ON COMMIT {DELETE | PELIHARA} BARIS];

Dalam sintaks ini, table_name ialah nama jadual sementara global yang anda ingin buat. lajur1, lajur2, dsb., ialah nama dan jenis data lajur dalam jadual.



Klausa ON COMMIT menentukan sama ada baris dalam jadual akan dipadamkan atau dikekalkan apabila transaksi semasa dilakukan. Enjin pangkalan data akan menggunakan pilihan ON COMMIT DELETE ROWS jika klausa ON COMMIT tidak ditakrifkan.





Seperti yang dinyatakan, perlu diingat bahawa data dalam jadual sementara adalah peribadi. Ini bermakna tiada sesi lain selain yang mencipta jadual boleh mengaksesnya.

Mencipta Contoh Jadual Sementara Global

Mari kita temui beberapa contoh praktikal menggunakan penyataan jadual sementara dalam pangkalan data Oracle.



Pertimbangkan contoh pertanyaan yang ditunjukkan di bawah:

BUAT JADUAL SEMENTARA GLOBAL temp_sales (
product_id NUMBER(10) NOT NULL,
tarikh_jual TARIKH BUKAN NULL,
jumlah_jualan NUMBER(10,2) BUKAN NULL
) ON COMMIT PADAM BARIS;

Dalam contoh di atas, kami mencipta jadual sementara menggunakan pilihan ON COMMIT DELETE ROWS.

Kami kemudian boleh memasukkan beberapa data sampel sebagai:

MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (1, TARIKH '2022-10-01', 100);
MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (2, TARIKH '2022-10-02', 500);
MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (3, TARIKH '2022-10-03', 130);

Selepas itu, anda boleh melakukan transaksi sebagai:

KOMITED;

Selepas melakukan, enjin pangkalan data akan memotong semua data dalam jadual sementara seperti yang dinyatakan dalam klausa komit.

Contoh 2

Contoh berikut menunjukkan cara membuat jadual yang mengekalkan baris pada komit:

BUAT JADUAL SEMENTARA GLOBAL temp_sales (
product_id NUMBER(10) NOT NULL,
tarikh_jual TARIKH BUKAN NULL,
jumlah_jualan NUMBER(10,2) BUKAN NULL
) ON COMMIT PRESERVE BARISAN ;

Kami kemudiannya boleh menambah baris sampelĀ  dan komit seperti yang ditunjukkan:

MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (1, TARIKH '2022-10-01', 100);
MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (2, TARIKH '2022-10-02', 500);
MASUKKAN KE DALAM TEMP_SALES (id_produk, tarikh_jualan, jumlah_jualan) NILAI (3, TARIKH '2022-10-03', 130);

KOMITED;

Dalam kes ini, data harus disimpan selepas operasi komit, seperti yang ditunjukkan oleh pernyataan pilih di bawah:

PILIH * DARI TEMP_SALES;

Pengeluaran:

Kesimpulan

Pernyataan 'buat jadual sementara' ialah alat yang berkuasa untuk mencipta jadual sementara dalam Oracle. Jadual sementara berguna untuk menyimpan data sementara yang hanya diperlukan untuk transaksi atau sesi. Pernyataan 'buat jadual sementara' membolehkan anda mentakrifkan struktur dan lajur jadual sementara dan menentukan cara baris dikendalikan apabila transaksi dilakukan. Akibatnya, menggunakan jadual sementara boleh meningkatkan prestasi dan kecekapan pertanyaan dan aplikasi anda serta mengurangkan jumlah ruang storan kekal yang diperlukan dalam pangkalan data anda.