CREATE SYNONYM

Purpose

CREATESYNONYMステートメントを使用して、テーブル、ビュー、シーケンス、プロシージャ、ストアド関数、パッケージ、マテリアライズドビュー、Java class schemaオブジェクト、ユーザー定義オブジェクト型、または別のシノニムの代替名であるシノニムを作成します。

シノニムは、データの独立性と場所の透明性の両方を提供します。 シノニムを使用すると、どのユーザーがテーブルまたはビューを所有しているか、またどのデータベースがテーブルまたはビューを保持しているかに関係なく、アプ ただし、シノニムはデータベースオブジェクトの権限に代わるものではありません。 ユーザーがシノニムを使用するには、そのユーザーに適切な権限を付与する必要があります。次のDML文でシノニムを参照できます。SELECTINSERTUPDATEDELETEFLASHBACKFLASHBACKINSERTINSERTUPDATEDELETEFLASHBACKFLASHBACKTABLEEXPLAINPLANLOCKTABLE。次のDDL文でシノニムを参照できます。

: AUDITNOAUDITGRANTREVOKECOMMENTCREATESYNONYMCREATEANYSYNONYMCREATEPUBLICSYNONYMSYNONYMCREATECREATECREATECREATECREATEiv id=”

構文

create_synonym::=

create_synonymの説明。gifは、次の

イラストcreate_synonymの説明。gif

セマンティクス

OR REPLACE

指定ORREPLACEORREPLACEPUBLICを指定します。 パブリックシノニムには、すべてのユーザーがアクセスできます。 ただし、シノニムを使用するには、各ユーザーが基礎となるオブジェクトに対する適切な権限を持っている必要があります。

オブジェクトへの参照を解決するとき、Oracle Databaseは、オブジェクトの前にスキーマがなく、データベース-リンクが続いていない場合にのみ、publicシノニムを使

この句を省略すると、シノニムはprivateであり、スキーマ内でのみアクセスできます。 プライベートシノニム名は、スキーマ内で一意である必要があります。

パブリックシノニムに関する注意事項パブリックシノニムには、次の注意事項が適用されます:

  • パブリックシノニムを作成し、その後に従属表または従属有効なユーザー定義オブジェクト型がある場合、従属オブジェクトと同じスキーマ内に同

  • 既存のスキーマと同じ名前のパブリックシノニムを作成しないように注意してください。 これを行うと、その名前を使用するすべてのPL/SQLユニットが無効になります。

schema

シノニムを格納するスキーマを指定します。 schemaを省略した場合、Oracle Databaseは独自のスキーマに同義語を作成します。 PUBLICを指定している場合、シノニムのスキーマを指定することはできません。

synonym

作成するシノニムの名前を指定します。

注:30バイトを超えるシノニムを作成して削除することができます。 ただし、Java名を表さない限り、他のSQLコマンドでは機能しません。 30バイトを超える名前は、データディクショナリに格納するために不明瞭な短い文字列に変換されます。

も参照してください:

“シノニムを作成します: 例”および”シノニムのOracleデータベース解決:例”

FOR句

シノニムが作成されるオブジェクトを指定します。 シノニムを作成するスキーマオブジェクトは、次のタイプにすることができます:

  • テーブルまたはオブジェクトテーブル

  • ビューまたはオブジェクトビュー

  • シーケンス

  • ストアドプロシージャ、関数、またはパッケー/p>

  • シノニム

スキーマオブジェクトは現在存在する必要はなく、オブジェクトにアクセスする権限は必要ありません。

FOR句の制限スキーマオブジェクトをパッケージに含めることはできません。

schemaオブジェクトが存在するスキーマを指定します。 オブジェクトをschemaCREATEschemaCREATE または、オブジェクトが存在するデータベースにローカルのパブリックシノニムを作成することもできます。 ただし、データベース-リンクは、プロシージャまたは関数への後続のすべての呼び出しに含める必要があります。dblink完全または部分的なデータベース-リンクを指定して、オブジェクトが存在するリモート-データベース上にスキーマ-オブジェクトのシノニムを作成できます。 dblinkschemadblinkを省略した場合、Oracle Databaseでは、オブジェクトがローカル・データベースにあると見なされます。Javaクラスのシノニムにはdblinkを指定することはできません。

関連項目:

  • データベースリンクの参照の詳細については、”リモートデータベース内のオブジェクトの参照”

  • データベースリンクの作成の詳細についテーブルlocationshrで、次のステートメントを発行します:p>

    CREATE SYNONYM offices FOR hr.locations;

    スキーマ内のPUBLICemployeeshrremoteデータベースでは、次のことができます次のステートメントを発行します。

    CREATE PUBLIC SYNONYM emp_table FOR [email protected];

    シノニムは、基になるオブジェクトが別のスキーマに含まれている場合、基になるオブジェク類義語のOracleデータベースの解決: Example Oracle Database attempts to resolve references to objects at the schema level before resolving them at the PUBLIC synonym level. For example, the schemas oe and sh both contain tables named customers. In the next example, user SYSTEM creates a PUBLIC synonym named customers for oe.customersshsh.customers:

    SELECT COUNT(*) FROM customers;

    から行の数を取得しますsh

sh.customers:

SELECT COUNT(*) FROM customers;

SELECT COUNT(*) FROM customers;

sh.customers

sh.customersoe.customersshcustomersshoe.customersに対するselect権限を持っている必要があります。)

SELECT COUNT(*) FROM oe.customers;

If the user hr‘s schema does not contain an object named customers, and if hr has select permission on oe.customers, then hr can access the customers table in oe‘s schema by using the public synonym customers:

SELECT COUNT(*) FROM customers;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です