一 给要创建dblink的用户赋相应的创建权限。
grant create public database link,create database link to username;
从这句sql可以看出一下子将创建public的dblink和私有的dblink权限都赋给了用户,public的dblink可以一个用户组里的用户都可以使用。而不带public的,即为私有的dblink只能是创建它的用户使用。
二 创建dblink。
create public database link dblinkname connect to username identified by password using 'TNSname';--1.已经配置了TNS时,直接写上TNS名称即可。
create public database link dblinkname connect to username identified by password --2.没有配置TNS,需要配置TNS
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =servicename)
)
)';
上面列出了两种创建dblink的方式。username为你要link的那个数据库的一个用户名,password即其密码。TNSname即为你已经配置好了的TNS名称,即你要link的那个库。
三 使用dblink操作dblink中的表。
select * from username.tablename@dblinkname;
username即为二步骤中link的那个数据库的用户名,tablename即为该用户下的表。dblinkname即为你创建的dblink。
四 其他。
select * from dba_db_links;--查看dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';--查看dblink
drop public database link dblinkname;--删除dblink