以文本方式查看主题 - 昂捷论坛 (http://enjoyit.com.cn/bbs/index.asp) -- □-技术研讨会 (http://enjoyit.com.cn/bbs/list.asp?boardid=36) ---- [分享]SQL_Server2008链接Oracle操作手册 (http://enjoyit.com.cn/bbs/dispbbs.asp?boardid=36&id=8156) |
-- 作者:zlg169 -- 发布时间:2011/10/11 10:51:57 -- [分享]SQL_Server2008链接Oracle操作手册 SQL_Server2008链接Oracle操作手册 走了好多弯路,不过终于成功了,现将正确的步骤整理如下,供大家阅览: 一、 目前SQL Server 2008 连接Oracle有两种访问接口,分别是Microsoft ODBC for Oracle(MSDAORA)和Oracle Provider for OLE DB(OraOLEDB.Oracle),这两种访问接口有本质的不同,Microsoft ODBC for Oracle是微软提供的只支持32位的SQL Server数据库,而且只支持到oracle 8i;Oracle Provider for OLE DB是甲骨文提供的支持64位的SQL Server数据库,同时也支持更高版本的Oracle数据库,Oracle Provider for OLE DB(OraOLEDB.Oracle)访问接口在安装完Oracle数据库客户端之后就可以在SQL Server 配置管理器的链接服务器访问接口里面看到。 此主题相关图片如下:1.png 因此,在链接SQL Server 2008和Oracle之前先确定SQL Server 2008的版本(32位or 64位)。注:这里以64位SQL Server 2008为例。 二、 安装oracle客户端软件: 1、下载oracle 11 的客户端 需要在安装有SQL_Server2008数据库的服务器上,安装oracle客户端,可以去Oracle 官网下载,下载时需要注册 http://www.oracle.com/us/solutions/midsize/112010-win64soft-094461.html, 比如“win64_11gR2_client”。 2、安装oracle 11 的客户端 下载完成后需要解压进行安装,可以根据需求去安装,一般以管理员方式安装, 此主题相关图片如下:2.png 里面会包括用于配置客户端设置的工具、sqlplus等一系列的工具。 此主题相关图片如下:3.png 3、配置Oracle11客户端 3.1、手工配置 安装成功后,在Oracle 客户端安装目录下如: F:\\app\\Administrator\\product\\11.2.0\\client_2\\network\\admin创建一个这样的文件 tnsnames.ora ,在里面配置如下服务器的相关信息,比如 ORA8 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 210.6.1.106)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ora8XDB) ) ) ORA8为服务命名,HOST为服务器的IP地址,PORT为Oracle数据库的端口,SERVICE_NAME为Oracle数据库的监听服务名,监听服务名和Oracle数据库名略有不同,可以通过命令去查看,以下以Oracle数据库安装Linux服务器为例进行查看: 首先,在开始运行中键入cmd进入命令行,敲入telnet 后面跟Linux服务器地址(例如telnet 210.6.1.106)如下图(注意:Win7和Win2008默认是关闭telnet功能的,可以通过控制面板——程序和功能——打开或关闭Windows功能来开启telnet功能,如下图 此主题相关图片如下:4.png ) 此主题相关图片如下:5.png 然后敲回车,键入Lunix服务器的用户名和密码,如下图 此主题相关图片如下:6.png 键入用户名和密码,后敲回车便进入了Lunix服务器的命令行管理界面,如下图 此主题相关图片如下:7.png 然后敲入Lunix服务器下命令行查看Oracle数据库监听服务的命令lsnrctl [start/stop/status],顾名思义start是开始监听服务的,stop是停止监听服务的,而这里我们只需要查看监听服务的状态,因此键入lsnrctl status就可以查看到Oracle数据库监听服务名,如下图红色标记 此主题相关图片如下:8.png 3.2通过net manager进行配置 打开net manager工具如下图,里面有概要文件、服务命名和监听程序,概要文件里方法选取TNSNAMES即可,监听程序是在Oracle服务器端配置的,客户端不需要配置; 此主题相关图片如下:9.png 由于论坛限制图片太多,因此转二楼(抱歉哈) [此贴子已经被作者于2011-10-14 9:53:17编辑过]
|
-- 作者:zlg169 -- 发布时间:2011/10/11 10:59:33 -- 着重需要对服务命名进行配置,点击服务命名后,点击左边的加号,进入配置界面,如下图 此主题相关图片如下:10.png 输入网络服务名,比如上面的ORA8或者TEST均可,只是一个名称,然后下一步,如下图 此主题相关图片如下:11.png 选择TCP/IP协议,下一步,如下图 此主题相关图片如下:12.png 主机名为Oracle数据库的服务器IP地址,端口号是Oracle数据库的端口号,然后下一步如下图 此主题相关图片如下:13.png 服务名即为我们上述通过Linux命令行查看的Oracle监听服务名,这里为ora8XDB,输入之后,点击下一步,如下图进行测试 此主题相关图片如下:14.png 点击测试,输入Oracle数据库用户名和密码进行测试,如下图 此主题相关图片如下:15.png 点击关闭后,完成即可,便可在目录如 F:\\app\\Administrator\\product\\11.2.0\\client_2\\network\\admin中查看tnsnames.ora文件。 三、 创建链接服务器 SQL_Server2008链接Oracle必须要在Oracle客户端配置tnsnames.ora文件,下来创建一个名称为jf的链接服务器,数据访问接口选择Oracle Provider for OLE DB,产品名称为Oracle,数据源要访问的oracle服务器上的要访问的那个数据库,然后输入访问oracle的用户名和密码,根据个人情况更改,更改执行后便可测试 exec sp_addlinkedserver @server=\'jf\', --链接服务器名称 @srvproduct=\'Oracle\', --数据库产品名称 @provider=\'OraOLEDB.Oracle\', --数据访问接口 @datasrc=\'ORA8\' --要访问的数据库名称 go exec sp_addlinkedsrvlogin @rmtsrvname = \'jf\', --链接服务器名称 @useself = \'false\', @locallogin = \'sa\', --本地数据库用户名 @rmtuser = \'jrmd_join\', --Oracle数据库用户名 @rmtpassword = \'jrmd_join\' --Oracle数据库密码 四、 通过链接服务器访问Oracle数据库 SQL的写法有两种 1、 使用T-SQL语法: SELECT * FROM JF..JRMD_JOIN.WFG001 注意:在这种方式下取数,如果在oracle中声明表的时候表明用了引号,此处的表明必须和oracle中一致,否则全部使用大写,不然会提示找不到表。 2、使用PLSQL语法: select *from openquery(jf,\'select *from jrmd_join.WFG001\') 注意:第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当。 因此,使用那种语法显而易见了。 |
-- 作者:wangxiaoxiao -- 发布时间:2011/10/11 14:43:38 -- 不错 |
-- 作者:wangxiaoxiao -- 发布时间:2011/10/14 15:21:41 -- 补充:和版本有关 “允许进程序内”打上勾 才可以用。 |