1. ホーム
  2. sql

[解決済み] Oracleデータベースでテンポラリテーブルを作成する方法を教えてください。

2022-10-23 03:10:34

質問

Oracleデータベースにテンポラリテーブルを作成したい。

のようなものです。

Declare table @table (int id)

SQLサーバでは

そして、select文で入力する

可能でしょうか?

ありがとうございます。

どのように解決するのですか?

Oracleにはテンポラリテーブルがあります。以下は AskTom の記事と はこちら は、公式のOracle CREATE TABLEドキュメントです。

しかし、Oracleでは データ だけが一時的なテーブルです。 このテーブルは、他のセッションから見える通常のオブジェクトです。 Oracle で頻繁に一時テーブルを作成したり削除したりするのは、悪い習慣です。

CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;


Oracle 18cでは、シングルセッションのインメモリオブジェクトであるプライベートテンポラリテーブルが追加されました。 以下を参照してください。 のドキュメントを参照してください。 を参照してください。 プライベートテンポラリテーブルは、動的に作成・削除することができます。

CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;


一時テーブルは便利ですが、Oracleではよく乱用されます。 インラインビューを使用して複数のステップを1つのSQL文にまとめることで、一時テーブルを回避できることがよくあります。