Hozzon létre szinonimát

cél

használja a CREATESYNONYM nyilatkozatot, hogy hozzon létre egy szinonimát, amely alternatív név egy tábla, nézet, sorrend, eljárás, tárolt funkció, csomag, materializált nézet, Java osztály séma objektum, felhasználó által definiált objektum típusa, vagy más szinonimája.

A szinonimák mind az adatok függetlenségét, mind a hely átláthatóságát biztosítják. A szinonimák lehetővé teszik, hogy az alkalmazások módosítás nélkül működjenek, függetlenül attól, hogy melyik felhasználó birtokolja a táblát vagy a nézetet, függetlenül attól, hogy melyik adatbázis tartja a táblát vagy a nézetet. A szinonimák azonban nem helyettesítik az adatbázisobjektumokkal kapcsolatos jogosultságokat. Megfelelő jogosultságokat kell biztosítani a felhasználónak, mielőtt a felhasználó használhatja a szinonimát.

szinonimákra hivatkozhat a következő DML-nyilatkozatokban: SELECTINSERTUPDATEDELETEFLASHBACKTABLEEXPLAINPLAN és LOCKTABLE.

szinonimákra hivatkozhat a következő DDL utasításokban: AUDITNOAUDITGRANTREVOKE és COMMENT.

Lásd még:

Oracle Adatbázis Fogalmak általános információk a szinonimák

Előfeltételek

ahhoz, Hogy hozzon létre egy privát szinonimája a saját séma, meg kell, hogy a CREATESYNONYM rendszer kiváltság.

egy másik felhasználó sémájának privát szinonimájának létrehozásához rendelkeznie kell a CREATEANYSYNONYM rendszer jogosultsággal.

PUBLIC szinonimájának létrehozásához aCREATEPUBLICSYNONYM rendszer jogosultságokkal kell rendelkeznie.

Syntax

create_synonym::=

Create_synonym leírása.gif következik

az illusztráció leírása create_synonym.gif

szemantika

vagy cserélje ki

adja meg a ORREPLACE a szinonimának újbóli létrehozásához, ha már létezik. Használja ezt a záradékot a meglévő szinonimák meghatározásának megváltoztatásához anélkül, hogy először eldobná.

A szinonimák cseréjének korlátozása nem használhatja a ORREPLACE záradékot egy olyan típusú szinonimához, amelynek függő táblázata vagy függő érvényes, felhasználó által definiált objektumtípusa van.

PUBLIC

adja meg a PUBLIC nyilvános szinonimát. A nyilvános szinonimák minden felhasználó számára elérhetők. Azonban minden felhasználónak megfelelő jogosultságokkal kell rendelkeznie a mögöttes objektumon a szinonimák használatához.

az objektumra való hivatkozások feloldásakor az Oracle adatbázis csak akkor használ nyilvános szinonimát, ha az objektumot nem állítja elő séma, és nem követi az adatbázis-hivatkozás.

ha kihagyja ezt a záradékot, akkor a szinonimája privát, csak a sémáján belül érhető el. A magán szinonimanévnek egyedinek kell lennie a sémájában.

Megjegyzések a nyilvános szinonimákról a következő megjegyzések vonatkoznak a nyilvános szinonimákra:

  • ha nyilvános szinonimát hoz létre, majd függő táblákat vagy függő érvényes, felhasználó által definiált objektumtípusokat tartalmaz, akkor nem hozhat létre egy másik, azonos nevű adatbázisobjektumot, mint a szinonimát ugyanabban a sémában, mint a függő objektumok.

  • ügyeljen arra, hogy ne hozzon létre nyilvános szinonimát ugyanazzal a névvel, mint egy meglévő séma. Ha ezt megteszi, akkor az összes PL/SQL egység, amely ezt a nevet használja, érvénytelenné válik.

séma

adja meg a sémát, hogy tartalmazza a szinonimát. Ha kihagyja a schema értéket, akkor az Oracle Database létrehozza a szinonimát a saját sémájában. Nem adhat meg sémát a szinonimához, ha megadta a PUBLICértéket.

szinonimája

adja meg a létrehozandó szinonimának nevét.

Megjegyzés:

30 bájtnál hosszabb Szinonimák hozhatók létre és ejthetők. Ha azonban nem jelentenek Java nevet, akkor nem fognak működni más SQL parancsban. A 30 bájtnál hosszabb nevek homályos, rövidebb karakterláncokká alakulnak át az adatszótár tárolásához.

Lásd még:

” szinonimák létrehozása: Példák ” és “Oracle Database Resolution of Synonyms: Example”

for Clause

adja meg azt az objektumot, amelyre a szinonimát létrehozták. A sémaobjektum, amelyhez a szinonimát hozza létre, a következő típusokból állhat:

  • a Táblázat vagy objektum, táblázat

  • Nézet vagy tárgy nézet

  • Szekvencia

  • Tárolt eljárás, függvény, vagy csomag

  • Materializált nézet

  • Java osztály séma objektum

  • a Felhasználó által definiált objektum típusa

  • Szinonimája

A séma tárgy kell, hogy jelenleg nem létezik, nem kell jogosultsága hozzáférni az objektumhoz.

A FOR záradék korlátozása a séma objektum nem tartalmazhat csomagot.

séma adja meg azt a sémát, amelyben az objektum található. Ha nem jogosult objektum schema, akkor az adatbázis feltételezi, hogy a séma objektum a saját sémájában van.

Ha egy eljárás vagy funkció szinonimáját hozza létre egy távoli adatbázisban, akkor meg kell adnia a schema értéket ebben a CREATE nyilatkozatban. Alternatív megoldásként létrehozhat egy helyi nyilvános szinonimát az adatbázisban, ahol az objektum található. Az adatbázis-linket azonban fel kell venni az eljárás vagy funkció minden későbbi hívásába.

dblink megadhat egy teljes vagy részleges adatbázis-linket egy séma objektum szinonimájának létrehozásához egy távoli adatbázisban, ahol az objektum található. Ha a dblink értéket adja meg, és kihagyja a schema értéket, akkor a szinonimája az adatbázis link által megadott sémában lévő objektumra utal. Az Oracle azt javasolja, hogy adja meg az objektumot tartalmazó sémát a távoli adatbázisban.

ha kihagyja adblink értéket, akkor az Oracle Database feltételezi, hogy az objektum a helyi adatbázisban található.

Adatbázishivatkozások korlátozása nem adhatja meg a dblink értéket egy Java osztály szinonimájához.

Lásd még:

  • “Utaló Tárgyakat, a Távoli Adatbázisok” további információk utalva adatbázis linkek

  • ADATBÁZIS LÉTREHOZÁSA LINKRE további információk létrehozása adatbázis linkek

Példa

LÉTRE SZINONIMÁJA: Példák, Hogy adjuk meg a szinonimája offices a táblázat locations a séma hr ki az alábbi nyilatkozatot:

CREATE SYNONYM offices FOR hr.locations;

PUBLIC a employees táblázat a sémában a remote adatbázis, a következő nyilatkozatot adhatja ki:

CREATE PUBLIC SYNONYM emp_table FOR [email protected];

a szinonimának ugyanaz a neve lehet, mint az alapul szolgáló objektumnak, feltéve, hogy az alapul szolgáló objektum egy másik sémában található.

Oracle adatbázis felbontása Szinonimák: 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;

Ha a felhasználó sh majd kérdések a következő nyilatkozatot, akkor az adatbázis visszatér a gróf a sort a sh.customers:

SELECT COUNT(*) FROM customers;

letölteni a gróf a sort a oe.customers, a felhasználó sh kell előszó customers a séma nevét. (A felhasználó shkell választani engedélyt oe.customers is.)

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;

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük