要创建一个从SQL到Oracle的DBlink,首先需要在该SQL端安装Oracle的客户端(用oracle自己提供的instant client不知道可不可以,没尝试过),安装好客户端以后,可以按照以下的步骤来进行:
1、利用Net Manager创建服务,具体步骤如下图片所示:
打开Oracle安装客户端的时候所装好的Net Manager
输入网络服务名,可以随便输入
选择TCP/IP(Internet协议)
在这里,主机名可以输入IP地址,不过如果IP不确定,且可能会经常变动的话,输入主机的名字也可以;输入完主机名字后,输入oracle的端口号,如下所示:
输入SID:
用oracle的用户名和密码进行测试
如果测试成功,则关闭当前画面,注意要保存哦!
完成这个步骤,会在tnsnames.ora中产生连接所需要的信息,例如服务器IP、SID,端口号等。
2、此时,oracle的信息已经基本上OK了,此时需要做的就是建立DBlink了。具体步骤如下所示:
打开SQL Management Studio,如下所示来建立Link Server:
点击上图中的New Linked Server,出现以下画面:
按照上图中的信息输入,其中Linked server可以随便填写,Provider则固定选我图中的OLE DB,Product Name处填入之前在Oracle的Net Manager中输入的名字,Data Source也填入Net Manager中输入的名字。完成后切换到Security页签,如下图所示:
注意在上图中的最下面选择“Be made using this security context”,然后在remote login处输入oracle的用户名,在with password中输入该用户名对应的password,完成后保存即可。
3、上面的设定都已经完成好之后,下面就是验证是否成功了。验证的时候,只要直接写一个sql查询oracle中的资料即可,如下所示:
注意在上图中,from的后面,table的名字要在前面加上linked server的名字,然后后面有两个小点,再然后才是oracle中用户的名字,最后就是表的名字了。其中特别需要注意的时候,用户的名字和表的名字都是要全部大写的。
关于第二步中,在SQL可视化工具中的操作也可以通过以下SQL来进行:
EXEC master.dbo.sp_addlinkedserver @server = N'link_peter_oracle', @srvproduct = N'peter_oracle', @provider = N'MSDAORA', @datasrc = N'peter_oracle', @provstr = N'User ID=scott;Password=tiger' --其中@srvproduct、@datasrc写实例名;@provstr为oracle的用户名和密码 注意上面的SQL只有一行的哦!
转载于:https://www.cnblogs.com/echochen/archive/2011/10/22/2221512.html