Účel
Použití CREATE
SYNONYM
příkaz pro vytvoření synonyma, které je alternativním jménem pro tabulku, pohled, sekvenci, proceduru, uložené funkce, balíček, materializované view, Java třídy schématu objektu, uživatelem definovaný typ objektu, nebo další synonymum.
Synonyma poskytují jak nezávislost dat, tak průhlednost umístění. Synonyma umožňují aplikacím fungovat bez úprav bez ohledu na to, který uživatel vlastní tabulku nebo pohled a bez ohledu na to, která databáze drží tabulku nebo pohled. Synonyma však nenahrazují oprávnění na databázových objektech. Před použitím synonymum musí být uživateli udělena příslušná oprávnění.
můžete odkazovat na synonyma v následující příkazy DML: SELECT
INSERT
UPDATE
DELETE
FLASHBACK
TABLE
EXPLAIN
PLAN
LOCK
TABLE
.
synonyma můžete odkazovat na následující příkazy DDL: AUDIT
NOAUDIT
GRANT
REVOKE
COMMENT
.
Viz Také:
Oracle Databáze Pojmy pro obecné informace o tom, synonyma
Předpoklady
vytvořit privátní synonyma ve své vlastní schéma, musíte mít CREATE
SYNONYM
systém oprávnění.
vytvořit privátní synonyma v jiném uživatele schématu, musíte mít CREATE
ANY
SYNONYM
systém oprávnění.
vytvořit PUBLIC
synonymum, musíte mít CREATE
PUBLIC
SYNONYM
systém oprávnění.
Syntax
create_synonym::=
popis obrázku create_synonym.gif
Sémantika
NAHRADIT
Nastaví OR
REPLACE
znovu vytvořit synonymum, pokud již existuje. Pomocí této klauzule změňte definici existujícího synonymum, aniž byste jej nejprve upustili.
Omezení na Nahrazení Synonymem nelze použít OR
REPLACE
klauzule pro typ synonymum, která má všechny závislé tabulky nebo závislé platné uživatelem definované typy objektů.
PUBLIC
zadejte PUBLIC
pro vytvoření veřejného synonymum. Veřejná synonyma jsou přístupná všem uživatelům. Každý uživatel však musí mít příslušná oprávnění k podkladovému objektu, aby mohl používat synonymum.
při řešení odkazů na objekt používá Oracle Database veřejné synonymum pouze v případě, že objekt není přednastaven schématem a není následován odkazem na databázi.
Pokud tuto klauzuli vynecháte, synonymum je soukromé a je přístupné pouze v rámci svého schématu. Název soukromého synonymum musí být ve svém schématu jedinečný.
Poznámky k veřejným synonym následující poznámky platí pro veřejná synonyma:
-
Pokud se vám vytvořit veřejné synonymum a to následně má závislé tabulky nebo závislé platné uživatelem definované typy objektů, pak nelze vytvořit další databázi objekt se stejným názvem jako synonymum ve stejném schématu jako závislé objekty.
-
dbejte na to, abyste nevytvořili veřejné synonymum se stejným názvem jako existující schéma. Pokud tak učiníte, všechny jednotky PL / SQL, které používají tento název, budou zneplatněny.
schéma
zadejte schéma, které má obsahovat synonymum. Pokud vynecháte schema
, pak Oracle Database vytvoří synonymum ve vašem vlastním schématu. Nemůžete zadat schéma pro synonymum, pokud jste zadali PUBLIC
.
synonymum
zadejte název vytvořeného synonymum.
Poznámka:
Synonyma delší než 30 bajtů mohou být vytvořena a zrušena. Pokud však nepředstavují Název Java, nebudou fungovat v žádném jiném příkazu SQL. Názvy delší než 30 bajtů jsou transformovány do obskurního kratšího řetězce pro uložení v datovém slovníku.
Viz také:
“ vytvořit synonymum: Příklady “ a „Oracle Database Resolution of Synonyma: Example“
pro klauzuli
Určete objekt, pro který je synonymum vytvořeno. Objekt schématu, pro který vytváříte synonymum, může být následujících typů:
-
Tabulka nebo objekt tabulky.
-
Zobrazení nebo objekt pohledu,
-
Pořadí
-
Uložené procedury, funkce, nebo balíček,
-
Materializované view
-
Java class schématu objektu
-
Uživatelsky definovaný typ objektu
-
Synonymum
Schéma objektu nemusí aktuálně existovat a nemusíte mít oprávnění pro přístup k objektu.
omezení klauzule FOR objekt schématu nemůže být obsažen v balíku.
schéma určuje schéma, ve kterém je objekt umístěn. Pokud nekvalifikujete objekt s schema
, pak databáze předpokládá, že objekt schématu je ve vašem vlastním schématu.
Pokud vytváříte synonymum pro proceduru nebo funkci na vzdálené databázi, musíte zadat schema
CREATE
prohlášení. Případně můžete vytvořit místní veřejné synonymum v databázi, kde je objekt umístěn. Odkaz na databázi však musí být zahrnut do všech následujících volání k postupu nebo funkci.
dblink můžete zadat úplný nebo částečný odkaz na databázi a vytvořit synonymum pro objekt schématu ve vzdálené databázi, kde je objekt umístěn. Pokud zadáte dblink
a vynechat schema
, pak synonymum odkazuje na objekt ve schématu uvedeno do databáze odkaz. Oracle doporučuje zadat schéma obsahující objekt ve vzdálené databázi.
Pokud vynecháte dblink
, pak Oracle Database předpokládá, že objekt je umístěn v místní databázi.
omezení odkazů na databázi pro synonymum třídy Java nelze zadat dblink
.
Viz Také:
-
„Odkazující na Objekty ve Vzdálených Databázích“ pro více informací o tom, s odkazem na databáze, odkazy,
-
VYTVOŘENÍ DATABÁZE ODKAZ pro více informací o vytváření databáze odkazů
Příklady
VYTVOŘIT SYNONYMUM: Příklady definovat synonymum offices
tabulky locations
ve schématu hr
, vydat následující prohlášení:
CREATE SYNONYM offices FOR hr.locations;
vytvořit PUBLIC
synonymum pro employees
tabulky ve schématu hr
remote
databáze, můžete vydat následující prohlášení:
CREATE PUBLIC SYNONYM emp_table FOR [email protected];
synonymum mohou mít stejný název jako základní objekt, za předpokladu, že základní objekt je obsažen v jiném schématu.
Oracle Database Resolution of Synonyma: 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.customers
:
CREATE PUBLIC SYNONYM customers FOR oe.customers;
Pokud uživatel sh
pak vydává následující prohlášení, pak databáze vrací počet řádků sh.customers
:
SELECT COUNT(*) FROM customers;
získat počet řádků oe.customers
, uživatel sh
předmluva customers
s název schématu. (Uživatel sh
musí mít oprávnění select na oe.customers
.)
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;