暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle中,同义词的定义及其作用是什么?有关同义词需要注意些什么?

DB宝 2019-02-27
2218


题目部分

在Oracle中,同义词的定义及其作用是什么?有关同义词需要注意些什么?


     

答案部分



同义词是其对象(例如表、实体、存储过程、函数、包、序列)的别名。同义词也可以是另一个同义词的别名。同义词的优点主要体现在以下几个方面:

使用对象时,不需要指出对象的所有者。

引用对象不需要指出它所在的数据库。

创建同义词必须要有CREATE ANY SYNONYMCREATE SYNONYM系统权限。要创建全局的同义词,必须有CREATE PUBLIC SYNONYN系统权限。创建同义词的语法如下所示:

CREATE OR REPLACE  [PUBLIC ]  SYNONYM 同义词名称 FOR 用户名.表名称;

以下示例的作用是将EMP定义为SCOTT.EMP的同义词。

SYS@lhrdb> SELECT COUNT(1) FROM EMP;

SELECT COUNT(1) FROM EMP

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

SYS@lhrdb> CREATE SYNONYM EMP FOR SCOTT.EMP;

Synonym created.

SYS@lhrdb> SELECT COUNT(1) FROM EMP;

  COUNT(1)

----------

        14

有关同义词需要注意的几点如下所示:

① 公共同义词与私有同义词可以同名。如果存在公共同义词和私有同义词同名的情况,那么在访问同义词时,访问的是私有同义词所指向的对象。

② 不能创建和当前用户下的表名相同的私有同义词,但是可以创建和当前用户下的表名相同的公共同义词。

测试如下