设为首页 加入收藏

TOP

在sql2008上面建立dblink
2014-11-24 02:54:51 来源: 作者: 【 】 浏览:3
Tags:sql2008 上面 建立 dblink

一.建立oracle的链接服务器

1.首先电脑上应该安装有oracle的客户端,并能连接到服务器
(因为这里是TIPTOP ERP系统+oracle 数据库,所以电脑上oracle的安装就先忽略)
2.在sql server2008的Management Stadio 中——链接服务器——新建链接服务器

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..用户名.表名 --注意用户名称,表名称要大写
[sql]
EX:SELECT * FROM ERP..SH_CCT.TC_QCS_FILE
<2>使用PLSQL语法: www.2cto.com
select * from openquery(LNK1,'select * from 用户名.表名')
[sql]
EX:SELECT * FROM openquery(ERP,'SELECT * FROM SH_CCT.TC_QCS_FILE')

第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当;
第一种访问方式可能会导致一些意外错误,如:该表不存在,或者当前用户没有访问该表的权限。
如果需要访问的column中使用没有精度的数据类型,这两种查询方式都可能会报错,这是ORACLE的BUG,
无法修正,只能通过查询语句的特殊处理规避这一问题:
OLEDB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。执行时更改了元数据信息。
[sql]
查询:SELECT * FROM OPENQUERY(TEST, 'SELECT * FROM tableName')
写入:INSERT INTO OPENQUERY(TEST, 'SELECT * FROM tableName WHERE 1>1') VALUES(3,6,'ANDY') www.2cto.com
更新:UPDATE OPENQUERY(TEST, 'SELECT * FROM tableName') SET role_id = 'ForTest' WHERE id = 3
删除:DELETE OPENQUERY(TEST, 'SELECT * FROM tableName') WHERE id IN (1,3)
二.建立SQl Server的链接服务器(建立方法同上)
select * from [192.168.1.14].[EFNETDB].[dbo].py05b_shya
Select * From [链接服务器名].[远程数据库名].[所有者].[表名]
Select * from [127.0.0.1].[cntvs].[dbo].[t_class]

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MSSQL动态查询语句 下一篇动态Sql返回值操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解智能指针? (2025-12-24 12:48:26)
·c++是否应避免使用普 (2025-12-24 12:48:23)
·如何通俗易懂学会 C+ (2025-12-24 12:48:21)
·在 C 语言函数中,如 (2025-12-24 12:19:41)
·C盘里面的AppData文 (2025-12-24 12:19:38)