ALTER SYNONYM

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'

ALL_OBJECTSは次の列を持つ。

ALL_OBJECTS
データ型 説明
OWNER VARCHAR2(30) オブジェクトの所有者
OBJECT_NAME VARCHAR2(30) オブジェクトの名前
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19) オブジェクトのタイプ
  • TABLE
  • INDEX
  • SYNONYM
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7) オブジェクトの状態
  • VALID
  • INVALID
  • N/A
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)

参照先の変更

ALTER SYNONYMでシノニムの参照先を変更することはできない。シノニムの参照先を変更するには、DROP SYNONYMでシノニムを削除してから、CREATE SYNONYMでシノニムを作成し直す。

SQL