本人很喜欢Oracle,在工作中也很喜欢总结关于Provider for Oracle的经验教训,下面就这个问题来详细说说吧。在SQL Server 2000建立Oracle连结服务器需要额外的组态工作:必须在客户端计算机内登录一个新机码(以本例而言,您的SQL Server将是Oracle Server的客户端)。
您必须为Windows操作系统与Oracle Server的版本选择一个适当的登录机码。在C:\program files\common files\system\ole db目录下可找到适当的登录档(registry files),文件名称以mtx作为开头。双击适当的登录档之后加入必要的机码值。如果想获取更多这方面的信息,请查阅SQL Server线上手册,搜寻:Accessing and Changing Relational Data, Distributed Queries, OLE DB Providers Tested with SQL Server, OLE DB Provider for Oracle, 并查阅有关Registry Entries之相关资料。
您可藉由两道系统预储程序来建立连结服务器。一开始先执行sp_addlinkedserver指定您所选择的OLE DB provider。下面范例将设定为Microsoft Data Access for Oracle:
sp_addlinkedserver 'OraDB', 'Oracle', 'MSDAORA', 'Ora817'
或是您可以设定为Oracle's OLE DB provider:
sp_addlinkedserver 'OraDB', 'Oracle', 'OraOLEDB.Oracle', 'Ora817'
在上述方法中可任选其一。虽然Microsoft官方仅支持且建议使用Microsoft OLE DB Provider for Oracle,但是我接下来所要示范的INSERT指令中,使用此provider将会受到某些限制。如果您在使用Microsoft的provider 时遇到了问题,建议您在洽询Microsoft的技术支持前,先试试Provider for Oracle!
下一个步骤则是执行sp_addlinkedsrvlogin 建立一个连结服务器之登入帐号。SQL Server 与其它Oracle 客户端一样,也是需要帐号和密码才能登入Oracle Server。
您有数种方式可将使用者名称以及密码提供给sp_addlinkedsrvlogin。在下面第一个范例中,我已经事先建立一个名为sys(密码为 change_on_install)之登入帐号,以便SQL Server将帐号密码送给Oracle时就能顺利仿真成Oracle的帐号密码。在预设的情况下,Oracle的sys使用者帐号其密码为 change_on_install。
【编辑推荐】