Purpose
CREATE
SYNONYM
ステートメントを使用して、テーブル、ビュー、シーケンス、プロシージャ、ストアド関数、パッケージ、マテリアライズドビュー、Java class schemaオブジェクト、ユーザー定義オブジェクト型、または別のシノニムの代替名であるシノニムを作成します。
シノニムは、データの独立性と場所の透明性の両方を提供します。 シノニムを使用すると、どのユーザーがテーブルまたはビューを所有しているか、またどのデータベースがテーブルまたはビューを保持しているかに関係なく、アプ ただし、シノニムはデータベースオブジェクトの権限に代わるものではありません。 ユーザーがシノニムを使用するには、そのユーザーに適切な権限を付与する必要があります。次のDML文でシノニムを参照できます。SELECT
INSERT
UPDATE
DELETE
FLASHBACK
FLASHBACK
INSERT
INSERT
UPDATE
DELETE
FLASHBACK
FLASHBACK
TABLE
EXPLAIN
PLAN
LOCK
TABLE
。次のDDL文でシノニムを参照できます。
: AUDIT
NOAUDIT
GRANT
REVOKE
COMMENT
CREATE
SYNONYM
CREATE
ANY
SYNONYM
CREATE
PUBLIC
SYNONYM
SYNONYM
CREATE
CREATE
CREATE
CREATE
CREATE
iv id=”
構文
create_synonym::=
イラストcreate_synonymの説明。gif
セマンティクス
OR REPLACE
指定OR
REPLACE
OR
REPLACE
PUBLIC
を指定します。 パブリックシノニムには、すべてのユーザーがアクセスできます。 ただし、シノニムを使用するには、各ユーザーが基礎となるオブジェクトに対する適切な権限を持っている必要があります。
オブジェクトへの参照を解決するとき、Oracle Databaseは、オブジェクトの前にスキーマがなく、データベース-リンクが続いていない場合にのみ、publicシノニムを使
この句を省略すると、シノニムはprivateであり、スキーマ内でのみアクセスできます。 プライベートシノニム名は、スキーマ内で一意である必要があります。
パブリックシノニムに関する注意事項パブリックシノニムには、次の注意事項が適用されます:
-
パブリックシノニムを作成し、その後に従属表または従属有効なユーザー定義オブジェクト型がある場合、従属オブジェクトと同じスキーマ内に同
-
既存のスキーマと同じ名前のパブリックシノニムを作成しないように注意してください。 これを行うと、その名前を使用するすべてのPL/SQLユニットが無効になります。
schema
シノニムを格納するスキーマを指定します。 schema
を省略した場合、Oracle Databaseは独自のスキーマに同義語を作成します。 PUBLIC
を指定している場合、シノニムのスキーマを指定することはできません。
synonym
作成するシノニムの名前を指定します。
注:30バイトを超えるシノニムを作成して削除することができます。 ただし、Java名を表さない限り、他のSQLコマンドでは機能しません。 30バイトを超える名前は、データディクショナリに格納するために不明瞭な短い文字列に変換されます。
も参照してください:
“シノニムを作成します: 例”および”シノニムのOracleデータベース解決:例”
FOR句
シノニムが作成されるオブジェクトを指定します。 シノニムを作成するスキーマオブジェクトは、次のタイプにすることができます:
-
テーブルまたはオブジェクトテーブル
-
ビューまたはオブジェクトビュー
-
シーケンス
-
ストアドプロシージャ、関数、またはパッケー/p>
-
シノニム
スキーマオブジェクトは現在存在する必要はなく、オブジェクトにアクセスする権限は必要ありません。
FOR句の制限スキーマオブジェクトをパッケージに含めることはできません。
schemaオブジェクトが存在するスキーマを指定します。 オブジェクトをschema
CREATE
schema
CREATE
または、オブジェクトが存在するデータベースにローカルのパブリックシノニムを作成することもできます。 ただし、データベース-リンクは、プロシージャまたは関数への後続のすべての呼び出しに含める必要があります。dblink完全または部分的なデータベース-リンクを指定して、オブジェクトが存在するリモート-データベース上にスキーマ-オブジェクトのシノニムを作成できます。 dblink
schema
dblink
を省略した場合、Oracle Databaseでは、オブジェクトがローカル・データベースにあると見なされます。Javaクラスのシノニムにはdblink
を指定することはできません。
関連項目:
-
データベースリンクの参照の詳細については、”リモートデータベース内のオブジェクトの参照”
-
データベースリンクの作成の詳細についテーブル
locations
hr
で、次のステートメントを発行します:p>CREATE SYNONYM offices FOR hr.locations;
スキーマ内の
PUBLIC
employees
hr
remote
データベースでは、次のことができます次のステートメントを発行します。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 schemasoe
and sh
both contain tables namedcustomers
. In the next example, userSYSTEM
creates aPUBLIC
synonym namedcustomers
foroe.customers
sh
sh.customers
:SELECT COUNT(*) FROM customers;
から行の数を取得します
sh
sh.customers
:
SELECT COUNT(*) FROM customers;
SELECT COUNT(*) FROM customers;
sh.customers
sh.customers
oe.customers
sh
customers
sh
oe.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;