oracle dblink使用

dblink的主要作用是两个数据库间的数据访问 (1)global_name查看 select * from global_name; (2)查看本地的global_names参数 show parameter global_names NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ global_names boolean FALSE 当该参数的值为true时在本地建立的dblink的名称必须和远程的global_name一致才行 (3)查看远程的数据库是否支持高级复制 select * from v$option where parameter='Advanced replication'; 如果返回的值为true,那么就是支持,否则就是不支持,应该在两个数据库中都是检查是否支持才行。 (4)创建dblink create database link dbl_test connect to test identified by oracle using 'lwl'; dbl_test:dblink的名字 test:要连接的数据库的用户名 oracle:要连接的数据库的密码 lwl:本地建立的连接到远程数据库的服务名 SQL> select * from dual@dbl_test; 如果返回结果如下就说明建立成功了 DU -- X (5)在被内地查看已建立的远程连接名 SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK'; OWNER ------------------------------ OBJECT_NAME -------------------------------------------------------------------------------- SCOTT DBL_TEST (6)使用 select * from r_area@dbl_test where R_AREA_NAME='郑州'; (7)修改本地的global_names SQL> alter system set global_names=TRUE; System altered. SQL> show parameter global_names NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ global_names boolean TRUE SQL> select * from r_area@dbl_test where R_AREA_NAME='郑州' select * from r_area@dbl_test where R_AREA_NAME='郑州' * ERROR at line 1: ORA-02085: database link DBL_TEST connects to ORCL 在TRUE的状态下建立dblink SQL> create database link a connect to ndas identified by ndas using 'ndas'; Database link created. SQL> create database link orcl connect to ndas identified by ndas using 'ndas'; create database link orcl connect to ndas identified by ndas using 'ndas' * ERROR at line 1: ORA-02082: a loopback database link must have a connection qualifier 名字相同时竟然出错了,貌似和前面的说法相悖,有待研究 (8)对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用: CREATE SYNONYM worker_syn FOR worker@zrhs_link; (9 对于另外一种情况,所要访问的表不在数据库链接中指定的远程帐户下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名: SELECT * FROM camel.worker@zrhs_link ; )
原文地址:https://www.cnblogs.com/azhqiang/p/4318175.html