创建DB_LINK的语法及说明
建立:
create public database link oradb(db_link名) connect to username(远程数据库用户名) identified by password(远程数据库用户密码) using 'oradb';
如果省略public,则创建的是private的数据库连接,private的连接只能是当前创建DB_LINK的用户可以使用这个db_link,public表示数据库中所有的用户都可以使用这个db_link。
使用connect to username(远程数据库用户名) identified by password(远程数据库用户密码),表示通过dblink访问远程数据库时所使用的用户及密码。
oradb指的是database link的名字,如果本地数据库的global_names=true,则这个名字一定要使用远程数据库的global_name(可以在远程数据库上执行select * from global_name;得到)。否则在建立db_link的时候不会报错,而在执行查询时会报错,ORA-02085: database link oradb connects to oradb.REGRESS.RDBMS.DEV.US.ORACLE.COM。
'oradb'指的是在本地数据库设置连接的远程数据库的tnsname(即tnsnames.ora设置的连接远程数据库的服务名)
db_link使用说明
<1>、当数据库参数global_name=false时,就不要求数据库链接名(db_link名)跟远端数据库的global_name名一样。
当用命令alter database rename global_name to oradb;进行域名修改时,修改的global_name(oradb)不会带默认的域名REGRESS.RDBMS.DEV.US.ORACLE.COM。
<2>、当数据库参数global_name=true时,那就要求数据库链接名(db_link名)跟远端数据库的global_name名一样,
当用命令alter database rename global_name to oradb;进行域名修改时,修改的global_name(oradb)是会带上默认的域名REGRESS.RDBMS.DEV.US.ORACLE.COM,在参数global_name=true情况下如果不需要带默认的域名,则可以执行下面语句进行解决
update props$ set value$ = 'oradb' where name = 'GLOBAL_DB_NAME'; commit;
或update global_name set global_name='oradb'; commit;
<3>、查询当前数据库中所创建的db_link可以通过如下命令实现:select * from dba_db_links;如果要删除建立的db_link,则可以通过如下命令实现:drop database link oradb(db_link名);