Käyttötarkoitus
käytä CREATE
SYNONYM
lausetta luodaksesi synonyymin, joka on vaihtoehtoinen nimi taulukolle, näkymälle, sekvenssille, menettelylle, tallennetulle funktiolle, paketille, materialisoidulle näkymälle, Java-luokan skeema-objektille, käyttäjän määrittelemälle objektityypille tai muulle synonyymille.
Synonyymit takaavat sekä tietojen riippumattomuuden että sijainnin avoimuuden. Synonyymien avulla sovellukset voivat toimia ilman muutoksia riippumatta siitä, kuka käyttäjä omistaa taulukon tai näkymän ja riippumatta siitä, missä tietokannassa taulukko tai näkymä on. Synonyymit eivät kuitenkaan korvaa tietokantaobjektien oikeuksia. Käyttäjälle on myönnettävä asianmukaiset oikeudet ennen kuin käyttäjä voi käyttää synonyymiä.
voidaan viitata synonyymeihin seuraavissa DML: n lausunnoissa: SELECT
INSERT
UPDATE
DELETE
FLASHBACK
TABLE
EXPLAIN
PLAN
, ja LOCK
TABLE
.
voi viitata synonyymeihin seuraavissa DDL-lauseissa: AUDIT
NOAUDIT
GRANT
REVOKE
, ja COMMENT
.
Katso myös:
Oracle Database Concepts for general information on synonyms
private synonymm in your own schema, you must have theCREATE
SYNONYM
system privilege.
luodaksesi toisen käyttäjän skeemaan yksityisen synonyymin, täytyy sinulla olla CREATE
ANY
SYNONYM
system privilege.
luodaksesi PUBLIC
synonyymin, sinulla täytyy olla CREATE
PUBLIC
SYNONYM
järjestelmäoikeudet.
syntaksi
create_synonym::=
kuvausta create_synonym.gif
semantiikka
tai korvaa
Määritä OR
REPLACE
luoda synonyymi uudelleen, jos se on jo olemassa. Käytä tätä lauseketta muuttaaksesi olemassa olevan synonyymin määritelmää pudottamatta sitä ensin.
rajoitus synonyymin korvaamisessa et voi käyttää OR
REPLACE
lauseketta tyypin synonyymille, jolla on riippuvia taulukoita tai riippuvia kelvollisia käyttäjän määrittelemiä oliotyyppejä.
Julkinen
Määritä PUBLIC
luodaksesi julkisen synonyymin. Julkiset synonyymit ovat kaikkien käyttäjien saatavilla. Jokaisella käyttäjällä on kuitenkin oltava asianmukaiset oikeudet taustalla olevaan objektiin, jotta synonyymiä voidaan käyttää.
ratkaistaessa viittauksia objektiin, Oraclen tietokanta käyttää julkista synonyymiä vain, jos objektia ei ole edeltänyt skeema eikä sitä seuraa tietokantalinkki.
Jos tämän lausekkeen jättää pois, synonyymi on yksityinen ja on käytettävissä vain sen skeeman sisällä. Yksityinen synonyymi nimi on oltava ainutlaatuinen sen skeema.
huomautukset julkisista synonyymeistä seuraavat huomautukset koskevat julkisia synonyymejä:
-
Jos luot julkisen synonyymin ja sillä on myöhemmin riippuvia taulukoita tai riippuvia voimassa olevia käyttäjän määrittelemiä objektityyppejä, et voi luoda toista samannimistä tietokantaobjektia samaan skeemaan kuin riippuvaiset objektit.
-
varo luomasta julkista synonyymiä, jolla on sama nimi kuin olemassa olevalla skeemalla. Jos teet niin, kaikki PL / SQL-yksiköt, jotka käyttävät tätä nimeä, mitätöidään.
skeema
Määritä skeema, joka Sisältää synonyymin. Jos jätät schema
pois, Oraclen tietokanta luo synonyymin omaan skeemaasi. Synonyymille ei voi määrittää skeemaa, jos on määritellyt PUBLIC
.
synonyymi
Määritä luotavan synonyymin nimi.
Huom:
yli 30 tavua pitemmät synonyymit voidaan luoda ja niistä voidaan luopua. Kuitenkin, elleivät ne edusta Java-nimeä, ne eivät toimi missään muussa SQL-komennossa. Yli 30 tavua pidemmät nimet muutetaan hämäräksi lyhyemmäksi merkkijonoksi tallennettavaksi data-sanakirjassa.
Katso myös:
” luo synonyymi: Examples ”ja” Oracle Database Resolution of Synonyms: Example ”
lausekkeelle
määritä kohde, jolle synonyymi on luotu. Skeema-objekti, jolle luot synonyymin, voi olla seuraavia tyyppejä:
- käyttäjän määrittelemä objektityyppi
taulukko tai objektitaulukko
näkymä tai objektitaulukko
sekvenssi
tallennettu proseduuri, funktio tai paketti
toteutunut näkymä
Java-luokan skeema-objekti
synonyymi
skeema-objektia ei tarvitse olla tällä hetkellä olemassa, eikä sinulla tarvitse olla oikeuksia objektin käyttöön.
for-lausekkeen rajoitus skeema-objekti ei voi sisältyä pakettiin.
skeema Määritä skeema, jossa objekti asuu. Jos objektia ei luokitella schema
, tietokanta olettaa skeema-objektin olevan omassa skeemassasi.
Jos etätietokannassa luodaan synonyymi toimenpiteelle tai funktiolle, on schema
tässä CREATE
lausuma. Vaihtoehtoisesti voit luoda paikallisen julkisen synonyymin tietokantaan, jossa objekti sijaitsee. Tietokantalinkki on kuitenkin sisällytettävä kaikkiin myöhempiin menettelyyn tai toimintoon liittyviin puheluihin.
Dblink voit määrittää täydellisen tai osittaisen tietokantalinkin luodaksesi skeema-objektin synonyymin etätietokantaan, jossa objekti sijaitsee. Jos määritellään dblink
ja jätetään pois schema
, niin synonyymi tarkoittaa tietokantalinkin määrittelemän skeeman objektia. Oracle suosittelee, että määrittelet objektin sisältävän skeeman etätietokannassa.
Jos dblink
jätetään pois, Oraclen tietokanta olettaa kohteen sijaitsevan paikallisessa tietokannassa.
Tietokantalinkkien rajoitusta ei voi määritellä dblink
Java-luokan synonyymille.
Katso myös:
-
”viitaten Etätietokantojen olioihin” lisätietoa tietokantalinkkeihin viittaamisesta
luo TIETOKANTALINKIT lisätietoa tietokantalinkien luomisesta
esimerkkejä
luo synonyymi: esimerkkejä synonyymin määrittelemiseksi offices
taulukonlocations
skeemassahr
, antaa seuraava lausuma:
CREATE SYNONYM offices FOR hr.locations;
luoda PUBLIC
synonyymi employees
taulukko skeemassa hr
remote
tietokanta, voit antaa seuraavan lausuman:
CREATE PUBLIC SYNONYM emp_table FOR [email protected];
synonyymillä voi olla sama nimi kuin taustalla olevalla objektilla, mikäli taustalla oleva objekti sisältyy toiseen skeemaan.
Oracle-tietokannan synonyymien resoluutio: 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;
Jos käyttäjä sh
antaa seuraavan lausuman, tietokanta palauttaa rivien määrän sh.customers
:
SELECT COUNT(*) FROM customers;
hakeakseen laskennan riveistä oe.customers
, käyttäjän sh
on esipuhuttava customers
skeemanimellä. (Käyttäjällä sh
täytyy olla myös valintaoikeus 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;