CREATE ALIAS ステートメントは、表、視点、ニックネーム、または他の別名に対する別名を定義します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、 または動的 SQL ステートメントを使用して発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。
許可
このステートメントの許可 ID には、以下の特権が少なくとも 1 つ含まれている必要があります。
別名によって参照されるオブジェクトを使用するには、そのオブジェクトに対して、 オブジェクトそのものを使用する場合に必要な特権と同じ特権が必要です。
構文
>>-CREATE----+-ALIAS--------+--alias-name---FOR-----------------> | (1) | '-SYNONYM------' >-----+-table-name--+------------------------------------------>< +-view-name---+ +-nickname----+ '-alias-name2-'
注:
説明
2 つの部分からなる名前を指定する場合、 "SYS" で始まるスキーマ名は使用できません (SQLSTATE 42939)。
別名を定義する際の規則は、表名の定義に使用される規則と同じです。
注
例
例 1: HEDGES は表 T1 に対して別名を作成します (どちらも修飾なし)。
CREATE ALIAS A1 FOR T1
HEDGES.T1 に対して別名 HEDGES.A1 が作成されます。
例 2: HEDGES は表に対して別名を作成します (どちらも修飾付き)。
CREATE ALIAS HEDGES.A1 FOR MCKNIGHT.T1
HEDGES.T1 に対して別名 MCKNIGHT.A1 が作成されます。
例 3: HEDGES は表に対して別名を作成します (異なるスキーマ内の別名。 HEDGES は DBADM ではなく、HEDGES はスキーマ MCKNIGHT に対して CREATEIN を持っていない)。
CREATE ALIAS MCKNIGHT.A1 FOR MCKNIGHT.T1
この例はエラーになります (SQLSTATE 42501)。
例 4: HEDGES は未定義の表に対して別名を作成します (どちらも修飾付き。 FUZZY.WUZZY は存在しない)。
CREATE ALIAS HEDGES.A1 FOR FUZZY.WUZZY
このステートメントは成功しますが、警告 (SQLSTATE 01522) が出されます。
例 5: HEDGES は別名に対して別名を作成します (どちらも修飾付き)。
CREATE ALIAS HEDGES.A1 FOR MCKNIGHT.T1 CREATE ALIAS HEDGES.A2 FOR HEDGES.A1
最初のステートメントは成功します (例 2 と同じ)。
2 番目のステートメントも成功して、別名連鎖が作成されます。 つまり、HEDGES.A2 が HEDGES.A1 を参照し、 その HEDGES.A1 が MCKNIGHT.T1 を参照することになります。 HEDGES に MCKNIGHT.T1 に対する特権があるかどうかは関係ありません。 別名は、表の特権に関係なく作成されます。
例 6: ニックネーム FUZZYBEAR の別名として、A1 を指定します。
CREATE ALIAS A1 FOR FUZZYBEAR
例 7: ある大規模な組織に、 D108 という会計部門と D577 という人事部門があります。 D108 は、DB2 RDBMS に存在する表に、ある情報を保持しています。 D577 は、Oracle RDBMS に存在する表に、いくつかのレコードを保持しています。 DBA は、この 2 つの RDBMS を連合システム内のデータ・ソースとして定義し、 それぞれの表に DEPTD108 および DEPTD577 というニックネームを付けます。 連合システムのユーザーはこれらの表の結合を作成する必要がありますが、 英数字のニックネームではなく、もっと意味のある名前で参照できるようにしたいことがあります。 それで、DEPTD108 の別名として FINANCE を定義し、 DEPTD577 の別名として PERSONNEL を定義します。
CREATE ALIAS FINANCE FOR DEPTD108 CREATE ALIAS PERSONNEL FOR DEPTD577