CREATE SYNONYM

Zweck

Verwenden Sie die Anweisung CREATESYNONYM, um ein Synonym zu erstellen, das ein alternativer Name für eine Tabelle, eine Ansicht, eine Sequenz, eine Prozedur, eine gespeicherte Funktion, ein Paket, eine materialisierte Ansicht, ein Java-Klassenschemaobjekt, einen benutzerdefinierten Objekttyp oder ein anderes Synonym ist.

Synonyme bieten sowohl Datenunabhängigkeit als auch Standorttransparenz. Synonyme ermöglichen es Anwendungen, ohne Änderungen zu funktionieren, unabhängig davon, welchem Benutzer die Tabelle oder Ansicht gehört und welche Datenbank die Tabelle oder Ansicht enthält. Synonyme sind jedoch kein Ersatz für Berechtigungen für Datenbankobjekte. Einem Benutzer müssen entsprechende Berechtigungen erteilt werden, bevor er das Synonym verwenden kann.

Sie können in den folgenden DML-Anweisungen auf Synonyme verweisen: SELECTINSERTUPDATEDELETEFLASHBACKTABLEEXPLAINPLAN und LOCKTABLE.

Sie können in den folgenden DDL-Anweisungen auf Synonyme verweisen: AUDITNOAUDITGRANTREVOKE und COMMENT.

Siehe auch:

Oracle Database Concepts für allgemeine Informationen zu Synonymen

Voraussetzungen

Um ein privates Synonym in Ihrem eigenen Schema zu erstellen, müssen Sie über das CREATESYNONYM Systemprivileg verfügen.

Um ein privates Synonym im Schema eines anderen Benutzers zu erstellen, benötigen Sie das CREATEANYSYNONYM Systemprivileg.

Um ein PUBLIC Synonym zu erstellen, müssen Sie das CREATEPUBLICSYNONYM Systemprivileg haben.

Syntax

create_synonym::=

Beschreibung von create_synonym.gif folgt

Beschreibung der Abbildung create_synonym.gif

Semantik

ODER ERSETZEN

Geben Sie ORREPLACE an, um das Synonym neu zu erstellen, falls es bereits vorhanden ist. Verwenden Sie diese Klausel, um die Definition eines vorhandenen Synonyms zu ändern, ohne es vorher zu löschen.

Einschränkung beim Ersetzen eines Synonyms Sie können die ORREPLACE -Klausel nicht für ein Typsynonym verwenden, das abhängige Tabellen oder abhängige gültige benutzerdefinierte Objekttypen enthält.

PUBLIC

Geben Sie PUBLIC an, um ein öffentliches Synonym zu erstellen. Öffentliche Synonyme sind für alle Benutzer zugänglich. Jeder Benutzer muss jedoch über entsprechende Berechtigungen für das zugrunde liegende Objekt verfügen, um das Synonym verwenden zu können.

Beim Auflösen von Verweisen auf ein Objekt verwendet Oracle Database nur dann ein öffentliches Synonym, wenn dem Objekt kein Schema vorangestellt ist und keine Datenbankverknüpfung folgt.

Wenn Sie diese Klausel weglassen, ist das Synonym privat und kann nur innerhalb seines Schemas aufgerufen werden. Ein privater Synonym-Name muss in seinem Schema eindeutig sein.

Hinweise zu öffentlichen Synonymen Die folgenden Hinweise gelten für öffentliche Synonyme:

  • Wenn Sie ein öffentliches Synonym erstellen und es anschließend abhängige Tabellen oder abhängige gültige benutzerdefinierte Objekttypen enthält, können Sie kein anderes Datenbankobjekt mit demselben Namen wie das Synonym im selben Schema wie die abhängigen Objekte erstellen.

  • Achten Sie darauf, kein öffentliches Synonym mit demselben Namen wie ein vorhandenes Schema zu erstellen. Wenn Sie dies tun, werden alle PL / SQL-Units, die diesen Namen verwenden, ungültig.

schema

Geben Sie das Schema an, das das Synonym enthalten soll. Wenn Sie schema weglassen, erstellt Oracle Database das Synonym in Ihrem eigenen Schema. Sie können kein Schema für das Synonym angeben, wenn Sie PUBLIC angegeben haben.

synonym

Geben Sie den Namen des zu erstellenden Synonyms an.

Hinweis:

Synonyme, die länger als 30 Byte sind, können erstellt und gelöscht werden. Sofern sie jedoch keinen Java-Namen darstellen, funktionieren sie in keinem anderen SQL-Befehl. Namen, die länger als 30 Byte sind, werden zur Speicherung im Datenwörterbuch in eine obskure kürzere Zeichenfolge umgewandelt.

Siehe auch:

„SYNONYM ERSTELLEN: Beispiele“ und „Oracle Database Resolution of Synonyms: Example“

FOR Klausel

Geben Sie das Objekt an, für das das Synonym erstellt wird. Das Schemaobjekt, für das Sie das Synonym erstellen, kann von folgenden Typen sein:

  • Tabelle oder Objekttabelle

  • Ansicht oder Objektansicht

  • Sequenz

  • Gespeicherte Prozedur, Funktion oder Paket

  • Materialisierte Ansicht

  • Java-Klassenschemaobjekt

  • Benutzerdefinierter Objekttyp

  • Synonym

Das Schemaobjekt muss derzeit nicht vorhanden sein und Sie müssen keine Berechtigungen für den Zugriff auf das Objekt haben.

Einschränkung der FOR-Klausel Das Schemaobjekt darf nicht in einem Paket enthalten sein.

schema Geben Sie das Schema an, in dem sich das Objekt befindet. Wenn Sie das Objekt nicht mit schema qualifizieren, geht die Datenbank davon aus, dass sich das Schemaobjekt in Ihrem eigenen Schema befindet.

Wenn Sie ein Synonym für eine Prozedur oder Funktion in einer entfernten Datenbank erstellen, müssen Sie schema in dieser CREATE-Anweisung angeben. Alternativ können Sie ein lokales öffentliches Synonym in der Datenbank erstellen, in der sich das Objekt befindet. Die Datenbankverbindung muss dann jedoch in allen nachfolgenden Aufrufen der Prozedur oder Funktion enthalten sein.

dblink Sie können eine vollständige oder teilweise Datenbankverknüpfung angeben, um ein Synonym für ein Schemaobjekt in einer entfernten Datenbank zu erstellen, in der sich das Objekt befindet. Wenn Sie dblink angeben und schema weglassen, bezieht sich das Synonym auf ein Objekt in dem Schema, das durch den Datenbanklink angegeben wurde. Oracle empfiehlt, dass Sie das Schema angeben, das das Objekt in der entfernten Datenbank enthält.

Wenn Sie dblinkweglassen, geht Oracle Database davon aus, dass sich das Objekt in der lokalen Datenbank befindet.

Einschränkung für Datenbanklinks Sie können dblink für ein Java-Klassensynonym nicht angeben.

Siehe auch:

  • „Verweisen auf Objekte in entfernten Datenbanken“ für weitere Informationen zum Verweisen auf Datenbankverknüpfungen

  • DATENBANKVERKNÜPFUNG ERSTELLEN für weitere Informationen zum Erstellen von Datenbankverknüpfungen

Beispiele

SYNONYM ERSTELLEN: Beispiele zum Definieren des Synonyms offices tabelle locations Geben Sie im Schema hr die folgende Anweisung aus:

CREATE SYNONYM offices FOR hr.locations;

Um ein PUBLIC Synonym für die employees -Tabelle in der Schema hr in der remote -Datenbank zu erstellen, können Sie geben Sie die folgende Anweisung aus:

CREATE PUBLIC SYNONYM emp_table FOR [email protected];

Ein Synonym kann denselben Namen wie das zugrunde liegende Objekt haben, vorausgesetzt, das zugrunde liegende Objekt ist in einem anderen Schema enthalten.

Oracle Datenbank Auflösung von Synonymen: 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;

Wenn der Benutzer sh dann die folgende Anweisung ausgibt, gibt die Datenbank die Anzahl der Zeilen von sh.customers zurück:

SELECT COUNT(*) FROM customers;

Um die Anzahl der Zeilen von oe.customers, der Benutzer sh muss customers mit dem Schemanamen voranstellen. (Der Benutzer sh muss auch die select-Berechtigung für oe.customers haben.)

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;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.