OPPRETT SYNONYM

Formål

BrukCREATESYNONYM setningen for å lage et synonym, som er et alternativt navn for en tabell, visning, sekvens, prosedyre, lagret funksjon, pakke, materialisert visning, Java-klasseskjemaobjekt, brukerdefinert objekttype eller et annet synonym.

Synonymer gir både data uavhengighet og plassering åpenhet. Synonymer tillater søknader å fungere uten endring uavhengig av hvilken bruker som eier tabellen eller visningen, og uavhengig av hvilken database som inneholder tabellen eller visningen. Synonymer er imidlertid ikke en erstatning for rettigheter på databaseobjekter. Passende privilegier må gis til en bruker før brukeren kan bruke synonymet.

du kan referere til synonymer i FØLGENDE dml-setninger: SELECTINSERTUPDATEDELETEFLASHBACKTABLEEXPLAINPLAN og LOCKTABLE.

du kan referere til synonymer i FØLGENDE DDL-setninger: AUDITNOAUDITGRANTREVOKE ogCOMMENT.

Oracle Database Concepts for generell informasjon om synonymer

Forutsetninger

for å opprette et privat synonym i ditt eget skjema, må du ha CREATESYNONYM systemprivilegium.

for å opprette et privat synonym i en annen brukers skjema, må du haCREATEANYSYNONYM systemrettigheter.

for å opprette en PUBLIC synonym, må du ha CREATEPUBLICSYNONYM systemprivilegium.

Syntaks

create_synonym::=

Beskrivelse av create_synonym.gif følger

Beskrivelse av illustrasjonen create_synonym.gif

Semantikk

ELLER ERSTATT

Spesifiser ORREPLACE for å gjenskape synonymet hvis det allerede finnes. Bruk denne klausulen til å endre definisjonen av et eksisterende synonym uten først å slippe det.

Begrensning På Å Erstatte Et Synonym Du kan ikke brukeORREPLACE-setningsdelen for en type synonym som har noen avhengige tabeller eller avhengige gyldige brukerdefinerte objekttyper.

OFFENTLIG

Spesifiser PUBLIC for å opprette et offentlig synonym. Offentlige synonymer er tilgjengelige for alle brukere. Men hver bruker må ha riktige rettigheter på det underliggende objektet for å kunne bruke synonymet.

Når du løser referanser til et objekt, Bruker Oracle Database et felles synonym bare hvis objektet ikke er prefaced av et skjema og ikke etterfølges av en databasekobling.

hvis du utelater denne klausulen, er synonymet privat og er bare tilgjengelig i skjemaet. Et privat synonym navn må være unikt i skjemaet.

Merknader Om Offentlige Synonymer følgende merknader gjelder for offentlige synonymer:

  • hvis du oppretter et felles synonym og det deretter har avhengige tabeller eller avhengige gyldige brukerdefinerte objekttyper, kan du ikke opprette et annet databaseobjekt med samme navn som synonymet i samme skjema som de avhengige objektene.

  • Pass på å ikke opprette et offentlig synonym med samme navn som et eksisterende skjema. Hvis du gjør det, vil alle PL/SQL-enheter som bruker det navnet, bli ugyldiggjort.

skjema

Angi at skjemaet skal inneholde synonymet. Hvis du utelater schema, oppretter Oracle Database synonymet i ditt eget skjema. Du kan ikke angi et skjema for synonymet hvis du har angitt PUBLIC.

synonym

Angi navnet på synonymet som skal opprettes.

Merk:

Synonymer lengre enn 30 byte kan opprettes og droppet. Men med mindre De representerer Et Java-navn, vil de ikke fungere i noen ANNEN SQL-kommando. Navn lengre enn 30 byte er forvandlet til en obskur kortere streng for lagring i dataordlisten.

Se Også:

» OPPRETT SYNONYM: Eksempler » Og » Oracle Database Oppløsning Av Synonymer: Eksempel «

For Klausul

Angi objektet som synonymet er opprettet for. Skjemaobjektet du oppretter synonymet for, kan være av følgende typer:

  • Sekvens

  • Lagret prosedyre, funksjon eller pakke

  • Materialisert visning

  • Java-klasseskjemaobjekt

  • brukerdefinert objekttype

  • synonym

  • skjemaobjektet trenger ikke eksisterer for øyeblikket, og du trenger ikke å ha privilegier for å få tilgang til objektet.

    Begrensning PÅ For-Setningsdelen skjemaobjektet kan ikke finnes i en pakke.

    skjema Angi skjemaet der objektet befinner seg. Hvis du ikke kvalifiserer objekt med schema, antar databasen at skjemaobjektet er i ditt eget skjema.

    hvis du oppretter et synonym for en prosedyre eller funksjon på en ekstern database, må du angi schema i denneCREATE – setningen. Alternativt kan du opprette et lokalt felles synonym på databasen der objektet ligger. Databasekoblingen må imidlertid inkluderes i alle påfølgende anrop til prosedyren eller funksjonen.

    dblink du kan angi en fullstendig eller delvis databasekobling for å opprette et synonym for et skjemaobjekt på en ekstern database der objektet er plassert. Hvis du angir dblink og utelater schema, refererer synonymet til et objekt i skjemaet som er angitt av databaselenken. Oracle anbefaler at du angir skjemaet som inneholder objektet i den eksterne databasen.

    hvis du utelater dblink, antar Oracle Database at objektet er plassert på den lokale databasen.

    Begrensning På Databaselenker Du kan ikke angi dblink For Et Java-klassesynonym.

    Se Også:

    • «Henviser Til Objekter I Eksterne Databaser» for mer informasjon om å henvise til databaselenker

    Eksempler

    OPPRETT SYNONYM: Eksempler for å definere synonymet officesfor tabellenlocationsi Skjemaethr, utsted FØLGENDE SETNING:

    CREATE SYNONYM offices FOR hr.locations;

    for å opprette enPUBLIC synonym foremployees tabell i skjemaethrremote database, kan du utstede følgende setning:

    CREATE PUBLIC SYNONYM emp_table FOR [email protected];

    et synonym kan ha samme navn som det underliggende objektet, forutsatt at det underliggende objektet finnes i et annet skjema.

    Oracle Database Oppløsning Av Synonymer: 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;

    hvis brukerensh deretter utsteder følgende setning, returnerer databasen antall rader frash.customers:

    SELECT COUNT(*) FROM customers;

    for å hente tellingen av rader fraoe.customers Må Brukerensh forordcustomers med skjemanavnet. (Brukeren sh må ha select-tillatelse på oe.customers også.)

    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;

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *