ALTER SYNONYM

目的

ALTER SYNONYM文を使用すると、既存のシノニムを変更できます。

前提条件

他のユーザーのスキーマに含まれるシノニムを変更する場合は、CREATE ANY SYNONYMシステム権限とDROP ANY SYNONYMシステム権限が必要です。

PUBLICシノニムを変更する場合、CREATE PUBLIC SYNONYMシステム権限とDROP PUBLIC SYNONYMシステム権限が必要です。

構文

セマンティクス

PUBLIC

synonymがパブリック・シノニムの場合は、PUBLICを指定します。この句は、パブリック・シノニムをプライベート・シノニムに変更する(または、その逆に変更する)場合には使用できません。

schema

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

synonym

変更するシノニムの名前を指定します。

EDITIONABLE | NONEDITIONABLE

この句を使用すると、schemaのスキーマ・オブジェクト・タイプSYNONYMのエディショニングが後で有効化されたときに、そのシノニムをエディション・オブジェクトにするか非エディション・オブジェクトにするかを指定できます。デフォルトは、EDITIONABLEです。エディション・オブジェクトと非エディション・オブジェクトの変更の詳細は、『Oracle Database開発ガイド』を参照してください。

EDITIONABLE | NONEDITIONABLEの制限事項

これらの句は、パブリック・シノニムには指定できません。PUBLICスキーマのオブジェクト型SYNONYMについては、エディショニングが常に有効化されています。

COMPILE

この句を使用すると、synonymをコンパイルできます。シノニムによってシノニムのターゲット・オブジェクトへの依存関係が設定され、ターゲット・オブジェクトが変更または削除されるとシノニムも無効になります。無効のシノニムをコンパイルすると、そのシノニムは再度有効になります。

ノート:

シノニムが有効か無効かを判断するには、ALL_DBA_、およびUSER_OBJECTSデータ・ディクショナリ・ビューのSTATUS列を問い合せます。

次の例では、「CREATE SYNONYM」の「例」で作成したシノニムを変更します。

次の文では、シノニムofficesをコンパイルします。

ALTER SYNONYM offices COMPILE;

次の文では、パブリック・シノニムemp_tableをコンパイルします。

ALTER PUBLIC SYNONYM emp_table COMPILE;

次の文では、シノニムofficesを含むスキーマのスキーマ・オブジェクト・タイプSYNONYMのエディショニングが後から有効化されたときにも、シノニムofficesが非エディション・オブジェクトの状態を維持するようにします。

ALTER SYNONYM offices NONEDITIONABLE;