在sql2008上面创建dblink
一.创建oracle的连接服务器
1.首先电脑上应该安装有oracle的客户端,并能链接到服务器
(由于这里是TIPTOP ERP系统+oracle数据库,因此电脑上oracle的安装就先忽略)
2.在sql server2008的Management Stadio 中——连接服务器——新建连接服务器 sql
3.在新建对话框"常规"选项卡里面:
【连接服务器名字】:本身取一个,我这里写ERP
【访问接口选择】:Microsoft OLEDB Provider for Oracle 驱动
【产品名称】:Oracle
【数据源】:写上本身电脑上tnsnames.ora 文件中配置的服务名;我这里是topprod
【访问接口字符串】:user id=TEST;password=TEST(能够省略) 数据库
4.在新建对话框"安全性"选项卡里面,选择安全性选项页,
使用此安装上下文创建链接:
【远程登陆】:TEST
【使用密码】:****** 安全
5.SQL的写法有两种
<1>使用T-SQL语法:
SELECT * FROM LNK1..用户名.表名 --注意用户名称,表名称要大写 服务器
<2>使用PLSQL语法:
select * from openquery(LNK1,'select * from 用户名.表名') oracle
第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度至关;
第一种访问方式可能会致使一些意外错误,如:该表不存在,或者当前用户没有访问该表的权限。
若是须要访问的column中使用没有精度的数据类型,这两种查询方式均可能会报错,这是ORACLE的BUG,
没法修正,只能经过查询语句的特殊处理规避这一问题:
OLEDB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。执行时更改了元数据信息。
app
二.创建SQl Server的连接服务器(创建方法同上)
select * from [192.168.1.14].[EFNETDB].[dbo].py05b_shya
Select * From [连接服务器名].[远程数据库名].[全部者].[表名]
Select * from [127.0.0.1].[cntvs].[dbo].[t_class] ide