Synoniem aanmaken

doel

Gebruik de instructie CREATESYNONYM om een synoniem te maken, wat een alternatieve naam is voor een tabel, weergave, sequentie, procedure, opgeslagen functie, pakket, gematerialiseerde weergave, Java class schemaobject, door de gebruiker gedefinieerd objecttype of een ander synoniem.

Synoniemen bieden zowel gegevensonafhankelijkheid als locatietransparantie. Synoniemen staan applicaties toe om zonder wijziging te functioneren, ongeacht welke gebruiker eigenaar is van de tabel of weergave en ongeacht welke database de tabel of weergave bevat. Synoniemen zijn echter geen vervanging voor privileges op databaseobjecten. De juiste rechten moeten worden verleend aan een gebruiker voordat de gebruiker het synoniem kan gebruiken.

U kunt verwijzen naar synoniemen in het volgende DML-instructies: SELECTINSERTUPDATEDELETEFLASHBACKTABLEEXPLAINPLAN, en LOCKTABLE.

u kunt naar Synoniemen verwijzen in de volgende DDL-statements: AUDITNOAUDITGRANTREVOKE, en COMMENT.

zie ook:

Oracle Database Concepts voor algemene informatie over Synoniemen

vereisten

om een privésynoniem in uw eigen schema aan te maken, moet u de CREATESYNONYM systeemrechten hebben.

om een privésynoniem aan te maken in het schema van een andere gebruiker, moet u de CREATEANYSYNONYM systeemrechten hebben.

om een PUBLIC synoniem aan te maken, moet u de CREATEPUBLICSYNONYM systeem privilege hebben.

syntaxis

create_synonym::=

Description of create_synonym.gif volgt

beschrijving van de illustratie create_synonym.gif

semantiek

of vervang

Specificeer ORREPLACE om het synoniem opnieuw aan te maken als het al bestaat. Gebruik deze clausule om de definitie van een bestaand synoniem te wijzigen zonder deze eerst te laten vallen.

beperking bij het vervangen van een synoniem u kunt de ORREPLACE clausule niet gebruiken voor een typesynoniem dat afhankelijke tabellen of afhankelijke geldige door de gebruiker gedefinieerde objecttypen heeft.

PUBLIC

SpecificeerPUBLIC om een publiek synoniem aan te maken. Openbare Synoniemen zijn toegankelijk voor alle gebruikers. Elke gebruiker moet echter de juiste rechten hebben op het onderliggende object om het synoniem te kunnen gebruiken.

bij het omzetten van verwijzingen naar een object gebruikt Oracle Database alleen een publiek synoniem als het object niet vooraf is voorzien van een schema en niet wordt gevolgd door een databasekoppeling.

Als u deze clausule weglaat, dan is het synoniem privé en is alleen toegankelijk binnen het schema. De naam van een privésynoniem moet uniek zijn in het schema.

opmerkingen over openbare Synoniemen de volgende opmerkingen zijn van toepassing op openbare Synoniemen:

  • Als u een openbaar synoniem maakt en het vervolgens afhankelijke tabellen of afhankelijke geldige door de gebruiker gedefinieerde objecttypen heeft, kunt u geen ander databaseobject met dezelfde naam als het synoniem maken in hetzelfde schema als de afhankelijke objecten.

  • zorg ervoor dat u geen openbaar synoniem maakt met dezelfde naam als een bestaand schema. Als je dat doet, dan worden alle PL/SQL eenheden die die naam gebruiken ongeldig gemaakt.

schema

specificeer het schema dat het synoniem bevat. Als u schema weglaat, dan maakt Oracle Database het synoniem aan in uw eigen schema. U kunt geen schema voor het synoniem opgeven als u PUBLIChebt opgegeven.

synoniem

specificeer de naam van het aan te maken synoniem.

opmerking:

Synoniemen langer dan 30 bytes kunnen worden aangemaakt en verwijderd. Echter, tenzij ze een Java naam vertegenwoordigen zullen ze niet werken in een andere SQL commando. Namen langer dan 30 bytes worden omgezet in een obscure kortere string voor opslag in het data dictionary.

zie ook:

” synoniem maken: Voorbeelden ” en “Oracle Database Resolution of Synoniemen: Example”

voor Clausule

specificeer het object waarvoor het synoniem is gemaakt. Het schemaobject waarvoor u het synoniem maakt, kan van de volgende typen zijn:

  • Tabel of object tabel

  • Bekijken of object bekijken

  • Volgorde

  • Opgeslagen procedure, functie, of een pakket

  • Gematerialiseerd weergeven

  • Java-klasse schema object

  • door de Gebruiker gedefinieerd object type

  • Synoniem

Het schema object hoeft niet te bestaan en u hoeft geen rechten om toegang tot het object.

beperking op de For-Clausule het schema-object kan niet in een pakket worden opgenomen.

schema specificeer het schema waarin het object zich bevindt. Als u het object niet kwalificeert met schema, dan neemt de database aan dat het schemaobject zich in uw eigen schema bevindt.

Als u een synoniem maakt voor een procedure of functie in een externe database, dan moet u schema opgeven in dit CREATE statement. U kunt ook een lokaal publiek synoniem maken in de database waar het object zich bevindt. Echter, de database link moet dan worden opgenomen in alle volgende oproepen naar de procedure of functie.

dblink u kunt een volledige of gedeeltelijke databaselink opgeven om een synoniem te maken voor een schema-object in een externe database waar het object zich bevindt. Als u dblink opgeeft en schema weglaat, dan verwijst het synoniem naar een object in het schema dat is opgegeven door de databaselink. Oracle raadt u aan het schema met het object in de externe database op te geven.

Als u dblink weglaat, dan neemt Oracle Database aan dat het object zich in de lokale database bevindt.

beperking op Databaselinks u kunt dblink niet opgeven voor een Java-klasse synoniem.

zie ook:

  • “Referring to Objects in Remote Databases” voor meer informatie over referring to database links

  • maak DATABASE LINK voor meer informatie over het creëren van database links

voorbeelden

maak synoniem: voorbeelden om het synoniem offices voor de tabel locations in het schema hr geeft u de volgende verklaring af:

CREATE SYNONYM offices FOR hr.locations;

om een PUBLIC synoniem voor de employees tabel in het schema hr op de remote database, kunt u de volgende verklaring:

CREATE PUBLIC SYNONYM emp_table FOR [email protected];

een synoniem kan dezelfde naam hebben als het onderliggende object, mits het onderliggende object in een ander schema is opgenomen.

Oracle-Database-resolutie van synoniemen: 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;

als de gebruiker sh geeft dan de volgende statement, dan de database retourneert het aantal rijen van sh.customers:

SELECT COUNT(*) FROM customers;

om het aantal rijen van oe.customers, de gebruiker sh moet voorwoord customers met de schemanaam. (De gebruiker sh moet ook select permission hebben op 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;

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *