ALTER SYNONYM は既存のシノニムを変更するSQL文である。無効なシノニムをコンパイルして、有効化することができる。
シノニムの参照先であるオブジェクトを変更または削除すると、そのシノニムは無効になる。無効となった要因を取り除いてから ALTER SYNONYM でシノニムをコンパイルすると、そのシノニムが有効になる。
自分のスキーマ内にあるプライベート・シノニムをコンパイルする。
ALTER SYNONYM example COMPILE
他人のスキーマ内にあるプライベート・シノニムをコンパイルする。
ALTER SYNONYM tsuka.example COMPILE
パブリック・シノニムをコンパイルする。
ALTER PUBLIC SYNONYM example COMPILE
自分のスキーマに含まれるプライベート・シノニムを変更するには、CREATE SYNONYM システム権限が必要である。
他人のスキーマに含まれるプライベート・シノニムを変更するには、CREATE ANY SYNONYM システム権限と DROP ANY SYNONYM システム権限が必要である。
パブリック・シノニムを変更するには、CREATE PUBLIC SYNONYM システム権限と DROP PUBLIC SYNONYM システム権限が必要である。
シノニムの種類 | スキーマ | 必要なシステム権限 |
---|---|---|
プライベート・シノニム | 自分 | CREATE SYNONYM |
他人 | CREATE ANY SYNONYM DROP ANY SYNONYM |
|
パブリック・シノニム | - | CREATE PUBLIC SYNONYM DROP PUBLIC SYNONYM |
シノニムが有効か無効かを判断するには ALL_OBJECTS、DBA_OBJECTS または USER_OBJECTS データディクショナリビューのSTATUS列を問い合わせる。
SELECT STATUS FROM USER_OBJECTS WHERE OBJECT_TYPE = 'SYNONYM' AND OBJECT_NAME = 'EXAMPLE'
無効なシノニムを調べるには、ALL_OBJECTS、DBA_OBJECTS または USER_OBJECTS データディクショナリビューのSTATUS列が INVALID の行をを問い合わせる。
SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'SYNONYM' AND STATUS = 'INVALID'
ALTER SYNONYMでシノニムの参照先を変更することはできない。シノニムの参照先を変更するには、DROP SYNONYMでシノニムを削除してから、CREATE SYNONYMでシノニムを作成し直す。
シノニムに関するSQL文には次のものがある。
SQL | 説明 |
---|---|
CREATE SYNONYM | シノニムを作成する。 |
ALTER SYNONYM | シノニムを変更する。 |
DROP SYNONYM | シノニムを削除する。 |
シノニムに関するシステム権限には次のものがある。
システム権限 | 説明 |
---|---|
CREATE SYNONYM | 自分のスキーマにプライベート・シノニムを作成できる。 |
CREATE ANY SYNONYM | 任意のスキーマにプライベート・シノニムを作成できる。 |
CREATE PUBLIC SYNONYM | パブリック・シノニムを作成できる。 |
DROP ANY SYNONYM | 任意のスキーマにあるプライベート・シノニムを削除できる。 |
DROP PUBLIC SYNONYM | パブリック・シノニムを削除できる。 |
シノニムに関するデータ・ディクショナリ・ビューには、次のものがある。
データ・ディクショナリ・ビュー | 説明 |
---|---|
ALL_SYNONYMS | 現在のユーザーがアクセスできるプライベート・シノニムおよびパブリック・シノニムを示す。 |
DBA_SYNONYMS | Oracleデータベース内すべてのプライベート・シノニムおよびパブリック・シノニムを示す。 |
USER_SYNONYMS | 現在のユーザーが所有するプライベート・シノニムを示す。 |