现在的位置: 首页 > 综合 > 正文

SqlServer 与 Oracle 数据库间的数据互访

2012年08月16日 ⁄ 综合 ⁄ 共 1567字 ⁄ 字号 评论关闭

1.使用连接服务器
图形界面:打开SQLSERVER的企业管理器,展开相应的DATABASE,在安全性下就有连结服务器的项目.点击右键即可添加
注意,要有管理员的权限才行
操作之前,你的电脑必须先设定好ORACLE的CLIENT,能用TNSPING通你的TNS.
命令行下:
添加连结服务器sp_addlinkedserver 'MyLinkServer','ProductName,'MSDAORA','MIX01'
参数分别是 连结服务器名称(必须)   产品名称   连接类型(必须)      资料来源(必须,而且是TNS的名称) 
光添加还是不够的,还要设置登入ORACLE的用户名和密码
1.如果SQL里面有用户帐号和密码与ORACLE里面一样,这里假如是SysLogin,则用
sp_addlinkedsrvlogin 'MyLinkServer',true,'SysLogin'
2.Windows 2000的Administrator帐号将对应到Oracle的scott使用者帐号,其密码为tiger: 
sp_addlinkedsrvlogin 'MyLinkServer',false,'W2000AS\Administrator', 'scott', 'tiger'
3.让所有SQL Server的登入帐号都以scott的身分,密码为tiger登入Oracle Server: 
sp_addlinkedsrvlogin 'MyLinkServer', false, NULL, 'scott', 'tiger'

这样的话,SQLSERVER 就与 ORACLE连结好了,如何使用呢?
假如已连结到ORACLE里面用户为IQCM资料表为GRADE
连结的表格式为: 服务器名称.数据库名称.拥有者名称.对象名称
1.查询:SELECT * FROM MyLinkServer..IQCM.GRADE
2.插入:INSERT MyLinkServer..IQCM.GRADE (deptno,dname,loc) values (2,NULL,NULL)
插入需要注意,不需要包含INTO关键词,要传递实际的字段值,而非使用DEAULT关键词
3.更新:UPDATE MyLinkServer..IQCM.GRADE set deptno = 3 WHERE deptno = 2
这个没特殊情况

注意事项

在您有效地设定连结服务器之前,您必须了解Oracle与SQL Server之间资料型态的差异。如果您将历史资料同时存放在Oracle与SQL Server,则需注意Oracle之date资料型态可存放至纪元前4712年1月1号,但SQL Server的datetime资料型态所存放的资料是从公元1753年1月1号开始。除此之外,Oracle的date资料型态可存放至0.01秒,而SQL Server之datetime资料型态则可存放至0.001秒。如果想得到更多有关SQL Server datetime资料型态的相关信息,请参阅Kalen Delaney的著作,Inside SQL Server。如果您想获取更多有关Oracle资料型态的相关资料,请到http://technet.oracle.com。您可以在该网站免费注册后获取Oracle之文件资料。

 某些时候您可能需要从多个数据库查询资料,甚至是从另外一台数据库服务器!当其它的数据库为Oracle时,这工作将会变得较具挑战性。Microsoft本身并不打算针对Oracle数据库使用者提供这类顾客服务,而Oracle也不会为SQL Server使用者提供支持。然而,连结服务器却可以方便您从SQL Server存取Oracle数据库的资料。现在您已经了解如何组态并使用Oracle连结服务器,您可以身处于较自在舒服的SQL Server环境,而实时地存取Oracle数据库!

抱歉!评论已关闭.