之前一直很少使用db link,所以对db link也不太熟,于是参考sql reference文档对db link做了初步了解。
首先我们来看看创建db link的语法:
1.对于public关键字是用来控制创建的dblink是可以给所有用户使用还是只能给创建者使用,如果忽略这个关键字那么就只能创建者使用。
2.对于dblink关键字表示你所创建的dblink的名称,这里有一点需要注意,如果在你数据库中的global_name参数为true的话,那么你创建的dblink名称必须要和远端的数据库名一样,否则会报ORA-02085的错误,这个参数默认是false。
3.对于connect to子句则决定了所创建的dblink的类型,这里有几个术语需要了解一下,如果使用了current_user子句创建的dblink被称为current user database link,这种类型的dblink比极少,原因是创建这种类型的dblink要求current user必须在远程数据库端是一个有效的全局用户(这里的全局用户的意思就是需要配置LDAP这种服务来认证的);如果是使用user identified by password创建的dblink被称为fixed user database link,这种类型应该是应用最广泛的;如果是忽略了connect to子句的话那么创建的dblink被称为connected user database link(也就是说是以你当前登录的用户来连接远程数据库);还有一种连接方式是dblink_authentication,不过这种方式是只有在你指定了shared子句时才有效(不过我一直不太理解这个shared关键字所代表的含义)。
4.对于USING 'connect string'关键字表示指定远程数据库的服务器名,这个'connect string'可以是被本地能够解析的网络服务名(通过tnsnames.ora解析)
下面简单列举几个创建dblink的例子:
1.创建一个公共的dblink
CREATE PUBLIC DATABASE LINK remote USING 'remote';
2.创建一个fixed_user dblink
CREATE DATABASE LINK remote CONNECT TO hr IDENTIFIED BY hr USING 'remote';
3.创建一个current_user database link
CREATE DATABASE LINK remote.us.oracle.com CONNECT TO CURRENT_USER USING 'remote';
具体每个关键字的含义可以参考sql reference官档
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20801486/viewspace-721657/
,如需转载,请注明出处,否则将追究法律责任。