Oracle同义词(synonym) 创建和删除
同义词synonym是指数据库对象(表、视图、序列、存储过程等数据库对象)用另一个名字来引用。比如:
建立一个同义词可以排除一个对象名字的限制.
如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1
建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,开发就方便多了
创建同义词
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.] synonym_name FOR [schema.] object_name [@dblink];
语法说明:
OR REPLACE: 在不使用DROP的前提下容许你重新创建(如果同义词已经存在)。
PUBLIC: 所创建的同义词是全局的同义词,所有数据库用户都可以使用。
schema: 要创建同义词的对象所在的schema,如果省略,则默认的应用对象在当前schema下。
object_name: 要创建同义词的对象,它可以是以下几种类型:
TABLE
VIEW
SEQUENCE
STORED PROCEDURE
FUNCTION
PACKAGE
MATERIALIZED VIEW
JAVA CLASS SCHEMA OBJECT
USER-DEFINED OBJECT
SYNONYM
例子
CREATE PUBLIC SYNONYM suppliers FOR app.suppliers;
示例中创建的同义词名为suppliers,这样,其他schema下的用户可以使用该同义词来使用app下的suppliers表而不必加上app。
SELECT * FROM suppliers;
删除同义词
删除的时候要注意删除只能是OWNER或system用户删除
drop [public] synonym 同义词名称
说明:
PUBLIC: 容许删除PUBLIC同义词, 如果使用了PUBLIC关键字,则可以省略schema。
FORCE:用来强制删除同义词,即使它在数据库中有其它的依赖。
要想删除私有同义词就 省略 public 关键字
要想删除公共同义词就要包括 public 关键字
例如:
drop synonym emp; --删除名为emp 的私有同义词
drop public synonym public_emp; --删除名为public_emp的公有同义词
查看同义词信息:
select * from dba_synonyms where synonym_name = '同义词';
select * from dba_synonyms where synonym_name = 'VW_ZS_PLAN_TJ_M'
Tag标签:「oracle 删除 synonym 同义词」更新时间:「2021-11-03 16:59:56」阅读次数:「1183」