oracle 同义词synonym

在A用户下,想访问B用户下的表,一遍需要用 “用户名.表名 ”的格式进行访问。如果想不加用户名,直接访问,需要建同义词。

同义词语法如下:

CREATE [PUBLIC] SYNONYM synonym_name FOR object;

DROP[PUBLIC] SYNONYM synonym_name;

1、中括号里面的内容是可选内容,如果加上PUBLIC表示公用同义词,不加的话就是私有同义词;

  公用同义词:能被所有的数据库用户访问的同义词,毫无疑问只有具有DBA权限的方案用户才可以设置;

    私有同义词:只能由创建的用户访问的同义词;

2、synonym_name表示同义词的名字

3、object表示要创建同义词的对象

比如:

1、没有创建同义词,在A用户下,访问B用户的表,语句如下:

select * from  B.inf_crm_znf_test;

2、在A用户下,执行如下语句,创建同义词

CREATE SYNONYM inf_crm_znf_test FOR B.Inf_Crm_Znf_Test;

3、在A用户下,访问B用户的表,就可以直接查询,不需要加用户名了。语句如下:

select * from  inf_crm_znf_test;

 4、删除同义词。在A用户下,执行如下语句:

drop synonym inf_crm_znf_test;

5、删除同义词后,在A库中直接查询 inf_crm_znf_test表,将报错。

原文地址:https://www.cnblogs.com/weimengjiacan/p/8949999.html