在Oracle中,創(chuàng)建會話級別的臨時表需要使用PL/SQL的臨時表空間。以下是創(chuàng)建會話級臨時表的步驟:
CREATE TEMPORARY TABLESPACE temp_tablespace
TEMPFILE 'temp_tablespace.dbf'
SIZE 10M
AUTOEXTEND ON;
這將創(chuàng)建一個名為temp_tablespace
的臨時表空間,其大小為10MB,并允許自動擴(kuò)展。
CREATE GLOBAL TEMPORARY TABLE session_temp_table (
id NUMBER,
name VARCHAR2(50)
)
ON COMMIT PRESERVE ROWS;
這將創(chuàng)建一個名為session_temp_table
的全局臨時表,其中包含兩個字段:id
和name
。ON COMMIT PRESERVE ROWS
選項表示在提交事務(wù)時保留行,因此這個臨時表是會話級別的。
INSERT INTO session_temp_table (id, name) VALUES (1, 'John Doe');
或者從中查詢數(shù)據(jù):
SELECT * FROM session_temp_table;
請注意,會話級臨時表只在當(dāng)前會話中可見,其他會話無法看到或訪問這個表。當(dāng)會話結(jié)束時,這個表的內(nèi)容將被清除。