plsqlでマテリアライズド・ビューを作成する方法は何ですか?
PL/SQLで物化ビューを作成するには、次の手順に従って操作します。
- PL/SQLで新しいパッケージや手続きを作成して、マテリアライズドビューを定義します。CREATE PACKAGEまたはCREATE PROCEDUREステートメントを使用して作成できます。
- PackageまたはProcedure内でCREATE MATERIALIZED VIEW文を使用して、物化ビューの構造とクエリを定義します。構文は以下の通りです:
CREATE MATERIALIZED VIEW mv_name
[TABLESPACE tablespace_name]
[CACHE | NOCACHE]
[PARALLEL parallel_clause]
[BUILD {IMMEDIATE | DEFERRED}]
[REFRESH {COMPLETE|FAST|FORCE} [START WITH date] [NEXT date]
[WITH {PRIMARY KEY|ROWID}]]
AS select_statement;
mv_nameはマテリアライズド・ビューの名前であり、tablespace_nameはマテリアライズド・ビューが存在する表領域の名前を指定します。CACHEまたはNOCACHEは、マテリアライズド・ビューをメモリにキャッシュするかどうかを指定するために使用されます。parallel_clauseは、並行クエリのレベルを指定するために使用されます。BUILDは、マテリアライズド・ビューの構築方法(即時構築または遅延構築)を指定するために使用されます。REFRESHは、マテリアライズド・ビューのリフレッシュ方法を指定するために使用されます。select_statementはマテリアライズド・ビューのクエリ文です。
- PackageまたはProcedure内のCREATE MATERIALIZED VIEWステートメントを実行するためにEXECUTEプロセスを使用し、物理ビューを作成します。
例えば、以下はPL/SQLを使用してマテリアライズドビューを作成する例です:
CREATE OR REPLACE PACKAGE my_package AS
PROCEDURE create_materialized_view;
END;
CREATE OR REPLACE PACKAGE BODY my_package AS
PROCEDURE create_materialized_view AS
BEGIN
EXECUTE IMMEDIATE '
CREATE MATERIALIZED VIEW my_materialized_view
TABLESPACE my_tablespace
CACHE
AS SELECT * FROM my_table';
END;
END;
create_materialized_viewを実行すると、マテリアライズドビューが作成されます。