工作中用到了dblink,所以做一下记录,以防以后忘记。
通过资料查询,了解到
创建数据库链接可用如下命令:
create [public] database link dblinkname
connect to cs identified by cs
using 'ibm';
dblinkname即数据库链接的名称,第一个cs是远端数据库的用户名,第二个cs是它对应的密码,ibm是tnsnames.ora中连接远程数据库的连接别名。public指出是否公用,如果指定则所有用户都可使用。创建后使用方法如下:
select * from a.tablename@dblinkname。
我的2个数据库都在一台电脑上,只不过是用户名不同。远程数据库用户名为cs,本地数据库用户名为oa,user为远程数据库中的表。
刚开始用的时候,我把using后面的随便写了一个值,结果用
select * from user@ibm 进行查询
报错。
但是用select * from cs.user可以成功。
不知道为什么,
后来发现
create [public] database link dblinkname
connect to cs identified by cs
using 'ibm';
using后面的值必须是本地服务名。
重建
create [public] database link dblinkname
connect to cs identified by cs
using 'ORCL';
然后用
select * from user@ORCL
查询成功。
证明第一次建的是错误的,但是不了解的是为什么加上用户名也能用。