プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

ALTER VIEW

用途

ALTER VIEWを使用すると、無効なビューを明示的に再コンパイルしたり、ビューの制約を変更することができます。明示的に再コンパイルすると、実行前にコンパイル・エラーを検査できます。再コンパイルは、ビューの実表を変更した後で、その変更がビューまたはそのビューに依存するオブジェクトに影響していないかどうかを確認するときに便利です。

ALTER VIEWを使用して、制約のビューを定義、変更または削除することもできます。

この文を使用して既存のビュー定義を変更することはできません。また、ビューの実表に対するDDL変更によってビューが無効になる場合、この文を使用して無効なビューをコンパイルすることはできません。このような場合は、CREATE VIEWOR REPLACEキーワードを指定して使用し、ビューを再定義する必要があります。

ALTER VIEW文を発行した場合、指定したビューは有効か無効かにかかわらず再コンパイルされます。また、そのビューに依存するすべてのローカル・オブジェクトが無効になります。

1つ以上のマテリアライズド・ビューが参照しているビューを変更した場合、これらのマテリアライズド・ビューは無効になります。無効なマテリアライズド・ビューは、クエリー・リライトには使用できず、リフレッシュもできません。


関連項目:

  • ビューの再定義の詳細は、「CREATE VIEW」を参照してください。無効なマテリアライズド・ビューの再検証の詳細は、「ALTER MATERIALIZED VIEW」を参照してください。

  • データ・ウェアハウスの概要は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。

  • スキーマ・オブジェクト間の依存性については、『Oracle Database概要』を参照してください。


前提条件

ビューが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY TABLEシステム権限が必要です。

構文

alter_view::=

alter_view.gifの説明が続きます。
図「alter_view.gif」の説明

(out_of_line_constraint::=(constraint::=」構文の一部)を参照)

セマンティクス

schema

ビューが含まれているスキーマを指定します。schemaを指定しない場合、ビューは自分のスキーマ内にあるとみなされます。

view

再コンパイルするビューの名前を指定します。

ADD句

ADD句を使用すると、viewに制約を追加できます。ビュー制約および制限事項については、constraintを参照してください。

MODIFY CONSTRAINT句

MODIFY CONSTRAINT句を使用すると、既存のビュー制約のRELYまたはNORELY設定を変更できます。この設定の使用方法の詳細は「RELY句」を、ビュー制約の概要は「ビュー制約の注意事項」を参照してください。

制約の変更の制限事項: 一意制約または主キー制約が参照整合性制約の一部である場合、外部キーの削除またはviewの設定にあわせた変更をせずに、設定を変更することはできません。

DROP句

DROPを使用すると、既存のビューの制約を削除できます。

制約の削除の制限事項: 一意制約または主キー制約がビューの参照整合性制約の一部である場合は削除できません。

COMPILE

COMPILEキーワードを指定すると、ビューを再コンパイルできます。

{ READ ONLY | READ WRITE }

これらの句は、エディショニング・ビューに対してのみ有効です。

  • READ ONLYを指定すると、エディショニング・ビューを更新禁止にできます。

  • READ WRITEを指定すると、読取り専用エディショニング・ビューを読取り/書込みステータスに戻すことができます。

これらの句を指定すると、依存オブジェクトは無効になりませんが、カーソルが無効になることがあります。


関連項目:

エディショニング・ビューの詳細は、「CREATE VIEW」を参照してください。

ビューの変更例: 次の文は、ビューcustomer_ro(「読取り専用ビューの作成例:」で作成)を再コンパイルします。

ALTER VIEW customer_ro
    COMPILE; 

customer_roの再コンパイル時にエラーが発生しなければ、customer_roは有効になります。再コンパイル・エラーが発生した場合はエラーが戻り、customer_roは無効のままとなります。

依存するオブジェクトもすべて無効になります。依存オブジェクトとは、customer_roを参照する、プロシージャ、ファンクション、パッケージ本体、ビューなどです。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、データベースは実行時にそれらを暗黙的に再コンパイルします。