VYTVOŘIT SYNONYMUM

Účel

Použití CREATESYNONYM 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: SELECTINSERTUPDATEDELETEFLASHBACKTABLEEXPLAINPLANLOCKTABLE.

synonyma můžete odkazovat na následující příkazy DDL: AUDITNOAUDITGRANTREVOKECOMMENT.

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 CREATESYNONYM systém oprávnění.

vytvořit privátní synonyma v jiném uživatele schématu, musíte mít CREATEANYSYNONYM systém oprávnění.

vytvořit PUBLIC synonymum, musíte mít CREATEPUBLICSYNONYM systém oprávnění.

Syntax

create_synonym::=

Popis create_synonym.gif následuje

popis obrázku create_synonym.gif

Sémantika

NAHRADIT

Nastaví ORREPLACE 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 ORREPLACE 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 schemaCREATE 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 hrremote 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;

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *