Purpose
Use la instrucción CREATE
SYNONYM
para crear un sinónimo, que es un nombre alternativo para una tabla, vista, secuencia, procedimiento, función almacenada, paquete, vista materializada, objeto de esquema de clase Java, tipo de objeto definido por el usuario u otro sinónimo.
Los sinónimos proporcionan independencia de datos y transparencia de ubicación. Los sinónimos permiten que las aplicaciones funcionen sin modificaciones, independientemente del usuario que posea la tabla o la vista y de la base de datos que contenga la tabla o la vista. Sin embargo, los sinónimos no sustituyen a los privilegios de los objetos de base de datos. Se deben otorgar privilegios apropiados a un usuario antes de que pueda usar el sinónimo.
puede referirse a los sinónimos de las siguientes instrucciones DML: SELECT
INSERT
UPDATE
DELETE
FLASHBACK
TABLE
EXPLAIN
PLAN
y LOCK
TABLE
.
Puede hacer referencia a sinónimos en las siguientes instrucciones DDL: AUDIT
NOAUDIT
GRANT
REVOKE
y COMMENT
.
Consulte también:
Conceptos de base de datos Oracle para obtener información general sobre sinónimos
Requisitos previos
Para crear un sinónimo privado en su propio esquema, debe tener el privilegio del sistema CREATE
SYNONYM
.
Para crear un sinónimo privado en el esquema de otro usuario, debe tener el privilegio del sistema CREATE
ANY
SYNONYM
.
Para crear un PUBLIC
sinónimo, debe tener la etiqueta CREATE
PUBLIC
SYNONYM
sistema de privilegio.
la Sintaxis
create_synonym::=
Descripción de la ilustración create_synonym.gif
la Semántica
O REEMPLACE
Especifique OR
REPLACE
para volver a crear el sinónimo, si ya existe. Use esta cláusula para cambiar la definición de un sinónimo existente sin eliminarlo primero.
Restricción para Reemplazar un sinónimo No puede usar la cláusulaOR
REPLACE
para un sinónimo de tipo que tenga tablas dependientes o tipos de objetos válidos dependientes definidos por el usuario.
PÚBLICO
Especifique PUBLIC
para crear un sinónimo público. Los sinónimos públicos son accesibles a todos los usuarios. Sin embargo, cada usuario debe tener los privilegios apropiados en el objeto subyacente para poder usar el sinónimo.
Al resolver referencias a un objeto, Oracle Database utiliza un sinónimo público solo si el objeto no va precedido de un esquema y no va seguido de un enlace a la base de datos.
Si omite esta cláusula, el sinónimo es privado y solo es accesible dentro de su esquema. Un nombre sinónimo privado debe ser único en su esquema.
Notas sobre Sinónimos públicos Las siguientes notas se aplican a sinónimos públicos:
-
Si crea un sinónimo público y posteriormente tiene tablas dependientes o tipos de objetos válidos dependientes definidos por el usuario, no podrá crear otro objeto de base de datos con el mismo nombre que el sinónimo en el mismo esquema que los objetos dependientes.
-
tenga cuidado de no crear un sinónimo público con el mismo nombre que un esquema existente. Si lo hace, todas las unidades PL/SQL que usen ese nombre serán invalidadas.
schema
Especifique el esquema para que contenga el sinónimo. Si omite schema
, Oracle Database crea el sinónimo en su propio esquema. No puede especificar un esquema para el sinónimo si ha especificado PUBLIC
.
sinónimo
Especifique el nombre del sinónimo a ser creado.
Nota: Se pueden crear y eliminar sinónimos de más de 30 bytes. Sin embargo, a menos que representen un nombre Java, no funcionarán en ningún otro comando SQL. Los nombres de más de 30 bytes se transforman en una cadena oscura más corta para su almacenamiento en el diccionario de datos.
Ver También:
» CREAR SINÓNIMO: Examples » y «Oracle Database Resolution of Synonyms: Example»
FOR Clause
Especifica el objeto para el que se crea el sinónimo. El objeto de esquema para el que está creando el sinónimo puede ser de los siguientes tipos:
-
Tabla o tabla de objetos
-
Vista o vista de objetos
-
Secuencia
-
procedimiento Almacenado, función, o el paquete
-
vista Materializada
-
Java esquema de clase de objeto
-
definido por el Usuario tipo de objeto
-
Sinónimo
El objeto de esquema necesidad de que actualmente no existen y usted no necesita tener privilegios de acceso al objeto.
Restricción en la cláusula FOR El objeto de esquema no puede estar contenido en un paquete.
esquema Especifique el esquema en el que reside el objeto. Si no califica un objeto con schema
, la base de datos asume que el objeto de esquema está en su propio esquema.
Si está creando un sinónimo para un procedimiento o función en una base de datos remota, debe especificar schema
en esta instrucción CREATE
. Alternativamente, puede crear un sinónimo público local en la base de datos donde reside el objeto. Sin embargo, el enlace a la base de datos debe incluirse en todas las llamadas posteriores al procedimiento o función.
dblink Puede especificar un enlace de base de datos completo o parcial para crear un sinónimo para un objeto de esquema en una base de datos remota donde se encuentra el objeto. Si especifica dblink
y omite schema
, el sinónimo se refiere a un objeto en el esquema especificado por el enlace a la base de datos. Oracle recomienda especificar el esquema que contiene el objeto en la base de datos remota.
Si omite dblink
, Oracle Database asume que el objeto se encuentra en la base de datos local.
Restricción en Enlaces a bases de datos No se puede especificar dblink
para un sinónimo de clase Java.
Ver También:
-
«Referencia a objetos en Bases de datos remotas» para obtener más información sobre referencia a enlaces de bases de datos
-
CREAR ENLACE de base de datos para obtener más información sobre creación de enlaces de base de datos
Ejemplos
CREAR SINÓNIMO: Ejemplos Para definir el sinónimo offices
para la tabla locations
en el esquema hr
, emita la siguiente instrucción:
CREATE SYNONYM offices FOR hr.locations;
Para crear un PUBLIC
sinónimo de la etiqueta employees
tabla en el esquema hr
en el remote
base de datos, podría emitir la siguiente declaración:
CREATE PUBLIC SYNONYM emp_table FOR [email protected];
Un sinónimo puede tener el mismo nombre que el objeto subyacente, siempre que el objeto subyacente está contenido en otro esquema.
Resolución de Sinónimos de la base de datos Oracle: 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;
Si el usuario sh
, a continuación, emite la siguiente declaración, entonces la base de datos devuelve el número de filas de sh.customers
:
SELECT COUNT(*) FROM customers;
Para recuperar el recuento de filas de oe.customers
, el usuario sh
debe prefacio customers
con el nombre de esquema. (El usuario sh
debe tener el permiso select en oe.customers
así.)
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;