Rumah >pangkalan data >Oracle >Terokai cara menggunakan Oracle untuk menanyakan jadual sementara

Terokai cara menggunakan Oracle untuk menanyakan jadual sementara

PHPz
PHPzasal
2023-04-18 09:07:361177semak imbas

Dalam pangkalan data Oracle, jadual sementara ialah jadual sementara yang digunakan untuk menyimpan data sementara. Tidak seperti jadual biasa, ia dipadamkan secara automatik selepas sesi tamat. Jadual sementara boleh menggunakan SELECT, INSERT, UPDATE, DELETE dan operasi lain seperti jadual biasa, tetapi datanya hanya kelihatan kepada sesi semasa dan tidak boleh diakses dalam sesi lain. Dalam artikel ini, kami akan meneroka cara untuk menanyakan jadual sementara menggunakan Oracle.

Membuat jadual sementara

Dalam pangkalan data Oracle, anda boleh menggunakan kenyataan CREATE GLOBAL TEMPORARY TABLE atau CREATE TEMPORARY TABLE untuk mencipta jadual sementara. Kedua-dua penyataan adalah sangat serupa, perbezaan utama ialah CREATE GLOBAL TEMPORARY TABLE mencipta jadual sementara global, dan CREATE TEMPORARY TABLE mencipta jadual sementara sesi. Berikut ialah contoh mencipta jadual sementara sesi:

CREATE GLOBAL TEMPORARY TABLE temp_table (
  id NUMBER(10),
  name VARCHAR2(30)
) ON COMMIT PRESERVE ROWS;

Pernyataan ini akan mencipta jadual sementara bernama temp_table, mengandungi dua lajur, id dan nama, dan data akan dipadamkan pada penghujung sesi. Pilihan ON COMMIT PRESERVE ROWS menentukan bahawa data akan disimpan selepas penyerahan, jadi jadual sementara boleh digunakan beberapa kali semasa sesi.

Menyiasat jadual sementara

Menyiasat jadual sementara adalah sangat serupa dengan menanya jadual biasa. Berikut ialah contoh pertanyaan jadual temp:

SELECT * FROM temp_table;

Ini akan mengembalikan semua baris dan lajur dalam temp_table.

Jika anda ingin berkongsi data sementara antara berbilang sesi, anda boleh menggunakan kenyataan CREATE GLOBAL TEMPORARY TABLE untuk mencipta jadual sementara global. Berikut ialah contoh menggunakan jadual sementara global:

CREATE GLOBAL TEMPORARY TABLE temp_table (
  id NUMBER(10),
  name VARCHAR2(30)
) ON COMMIT PRESERVE ROWS;

-- 在会话1中插入数据
INSERT INTO temp_table VALUES (1, 'Alice');
COMMIT;

-- 在会话2中查询数据
SELECT * FROM temp_table;

-- 在会话1中插入更多的数据
INSERT INTO temp_table VALUES (2, 'Bob');
COMMIT;

-- 再次在会话2中查询数据
SELECT * FROM temp_table;

Dalam contoh ini, jadual sementara global temp_table dicipta dalam sesi 1 dan kemudian beberapa data dimasukkan dalam sesi 1. Sesi 2 menanyakan semua baris dan lajur dalam temp_table melalui pernyataan SELECT. Semasa pertanyaan ini, sesi 1 terus memasukkan data ke dalam temp_table dan mengekalkan data selepas penyerahan. Akhirnya, apabila saya menanyakan temp_table sekali lagi dalam sesi 2, saya hanya melihat baris yang dimasukkan sebelum ini, bukan baris yang kemudian.

Dalam pangkalan data Oracle, sintaks untuk menanyakan jadual sementara adalah sama seperti untuk menanyakan jadual biasa. Kelebihan utama jadual sementara ialah ia dipadamkan secara automatik selepas sesi tamat, jadi kerja pembersihan manual boleh dielakkan apabila bekerja dengan data sementara.

Atas ialah kandungan terperinci Terokai cara menggunakan Oracle untuk menanyakan jadual sementara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn