首頁 >資料庫 >mysql教程 >如何在Oracle資料庫中建立和管理臨時表?

如何在Oracle資料庫中建立和管理臨時表?

Susan Sarandon
Susan Sarandon原創
2025-01-16 20:19:09439瀏覽

How Do I Create and Manage Temporary Tables in Oracle Databases?

管理 Oracle 中的暫存資料:臨時表指南

Oracle 資料庫提供臨時表作為在會話中管理臨時資料集的機制。 與其他一些資​​料庫系統不同,在 Oracle 中,只有臨時表中的資料是暫時的;表結構本身作為常規資料庫物件持續存在。

建立全域臨時表

標準方法涉及CREATE GLOBAL TEMPORARY TABLE。 這將建立一個只能在當前會話中存取的臨時表。

文法:

<code class="language-sql">CREATE GLOBAL TEMPORARY TABLE table_name (column_definition)
ON COMMIT {PRESERVE ROWS | DELETE ROWS}</code>
  • ON COMMIT PRESERVE ROWS: 資料在交易提交期間持續存在。
  • ON COMMIT DELETE ROWS:交易完成後資料將會刪除。

範例:

<code class="language-sql">CREATE GLOBAL TEMPORARY TABLE daily_sales (order_id NUMBER)
ON COMMIT PRESERVE ROWS;</code>

利用 Oracle 18c 私有臨時表

Oracle 18c 引入了私有臨時表,提供特定於會話的記憶體儲存。這些表是在單一會話中動態建立和刪除的。

文法:

<code class="language-sql">CREATE PRIVATE TEMPORARY TABLE table_name AS SELECT * FROM existing_table;</code>

範例:

<code class="language-sql">CREATE PRIVATE TEMPORARY TABLE my_temp_sales AS
SELECT * FROM sales WHERE sale_date = SYSDATE;</code>

重要注意事項:

雖然方便,但應避免過度使用臨時表。 在許多情況下,內嵌視圖透過將多個 SQL 語句簡化為單一查詢來提供更有效的替代方案。 在 Oracle 中使用臨時表時,仔細考慮效能影響至關重要。

以上是如何在Oracle資料庫中建立和管理臨時表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn