当我们使用Oracle数据库用户user1的时候, 我们想要访问只有在用户user2里才有的表t_emp,
我们通常的语句是:
select t.ename, t.deptno from user2.t_emp t;
如果我们直接写:
select t.ename, t.deptno from t_emp t;
这时候就会报错: 表或视图不存在!
那我们可不可以直接写这样的语句呢?
答案是可以的. 利用同义词就可以做到这一点.
同义词的好处就是可以利用一个名词(可以理解为某个对象的代号)来访问某个特定的数据库对象
那首先我们先要创建同义词.
create public synonym table_name for user.table_name;
create public synonym t_emp form user2.t_emp;
然后你在使用
select t.ename, t.deptno from t_emp t;
查询就能得到你想要的结果了.
删除同义词:
drop public synonym table_name;
查看同义词:
select * from dba_synonyms