同义词和DBLINK

2015/02/15 Oracle

同义词和DBLINK

同义词

从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。

私有同义词:一般是普通用户自己建立的同义词,用户创建者需要create synonym权限
   grant create synonym to scott;
   create synonym abc for emp;

公用同义词:一般是由DBA创建,所有的用户可以使用,创建者需要create public synonym 权限
   grant create public synonym to scott;
   create public synonym xyz for emp;
   drop public synonym xyz;

同义词的使用要点

关于同义词的几个要点:

私有同义词是模式对象,一般在自己模式中使用,如其他模式使用则必须用模式名前缀限定

公有同义词不是模式对象,不能用模式名前缀。

私有和公有同义词同名时,如果指向不同对象,私有同义词优先。

引用的同义词的对象(表或者视图)被删除了,同义词仍在,重新创建该对象名,下次访问同义词时自动编译。
例如:create synonym xyz for emp;
     drop table emp;
     select *from xyz;--已删除表,同义词转换不在有效
     flashback table emp to before drop;
     select *from xyz;--利用闪回,同义词再次有效

ORACLE的DBLINK用于对不同的数据库实例或者远程进行连接,语法如下:

create public database link 连接名
connect to username identified by passwd using
'(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))
(CONNECT_DATA=(SERVICE_NAME=))
)';

-- 注意一点,如果密码是数字开头,用“”括起来
创建DBLINK
create public database link TESTLINK2 connect to WANGYONG identified by "123456" USING 'ORCL21'

使用:
--使用DBLINK连接名操作数据库emp
 select * from  emp@TESTLINK2;
-- 创建同义词之后
create synonym TESTSYNONYM FOR company@TESTLINK1;
--使用同义词操作数据库emp
SELECT * FROM TESTSYNONYM order by id

Search

    Table of Contents