SQL Server中创建Oracle的链接服务器
标签:server log 链接服务器 bsp images image 9.png src com
小编还为您整理了以下内容,可能对您也有帮助:
如何在 SQL 服务器中设置到 Oracle 的链接服务器并进行故障排除
设置到 Oracle 的链接服务器的步骤
您必须在运行要在其上设置链接服务器的 SQL Server 计算机上安装 Oracle 客户端软件。
在运行 SQL Server 的计算机上安装所需的驱动程序。Microsoft 仅支持用于 Oracle 的 Microsoft OLE DB 提供程序和 Microsoft ODBC 驱动程序。如果您使用第三方提供程序或第三方驱动程序连接到 Oracle,则在使用这些提供程序或驱动程序遇到任何问题时,您必须与相应的供应商联系。
如果您使用用于 Oracle 的 Microsoft OLE DB 提供程序和 Microsoft ODBC 驱动程序,请考虑下列事项:
随 Microsoft Data 数据访问组件 (MDAC) 提供的 OLE DB 提供程序和 ODBC 驱动程序和都需要 SQL*Net 2.3.x或更高版本。您必须在客户端计算机上安装 Oracle 7.3.x 客户端软件或更高版本。客户端计算机是运行 SQL Server 的计算机。
确保您已经在运行 SQL Server 的计算机上安装了 MDAC 2.5 或更高版本。如果使用 MDAC 2.1 或更早版本,则无法连接到使用 Oracle 8.x 或更高版本的数据库。
要使 MDAC 2.5 或更高版本能够与 Oracle 客户端软件一起工作,必须按照下表中的说明修改运行 SQL Server 的客户端计算机的注册表。
SQLServer如何链接服务器?
1、打开企业管理器
2、选择数据库,安全性,点击新建链接服务器。
3、选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。
4、进行安全性设置。本地登录,选择SQLServer数据库登录用户,远程登录用户和密码,输入远程连接数据库的用户和密码,选择用此安全上下文进行,输入远程登录用户和密码。
5、点击TEST链接服务器下的表,我们可以访问ORACLE数据库的表了。
注意:产品名称要和所链接的服务器相对应,使用ORACLE数据库就要输入ORACLE,使用SQLServer就输入SQLServer。
SQLserver链接服务器到Oracle
SQL Server 2005 Express 访问 Oracle 10
EXEC master.dbo.sp_addlinkedserver
@server = N'TESTLINK',
@srvproct=N'Oracle',
@provider=N'MSDAORA',
@datasrc=N'TEST'
GO
这一句在 SQLServer 下创建一个数据库链接。
连接名为TESTLINK
Oracle 数据源是 TEST
要求在SQL Server 的机器上面,安装有Oracle 的客户端。
那个Oracle 数据源,配置文件在
E:oracleproct10.2.0client_1NETWORKADMIN
目录下。
内容为:
# tnsnames.ora Network Configuration File:E:oracleproct10.2.0client_1networkadmintnsnames.ora
# Generated by Oracle configuration tools.
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.210)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = ORCL)))
注: 本机只安装了 SQL SERVER EXPRESS 与 Oracle 10 的客户端。
Oralce 10 服务器安装在 另外一台机器上。
EXEC
master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'TEST',
@locallogin = NULL ,
@useself = N'False',
@rmtuser = N'test',
@rmtpassword = N'test123'
GO
这一句是设置默认用什么用户名/密码来访问Oracle 数据库。
上面的例子是用户名为test 密码为 test123
数据库链接创建完毕后,可以尝试查询:
这里的TESTLINK..TEST.TEST_MAIN。
第一个TESTLINK是数据库链接名
第二个TEST 是Oracle 那里的Test 用户的方案名
TEST_MAIN 是Test 用户下的一个表。
1 select * from TESTLINK..TEST.TEST_MAIN;
2 go
ID VALUE
--------------------------------------------------
1 ONE
2 TWO
3 TWO
(3 行受影响)
注:假如创建链接完毕后,执行查询的时候,提示MSDAORA 找不到Oracle 客户端的话。如果本机安装的是Oracle 9 / 10 。那么有可能是权限的问题,需要额外在操作系统那里设置一下。
以本机为例子:
需要选择E:oracleproct10.2.0client_1这个目录。
鼠标右键,弹出菜单中,选择“属性”。
然后在“安全”选项中,增加一个EveryOne 用户。并设置完全控制。
然后重新启动计算机。
重新启动完毕后,应该就正常了。
sqlserver 怎么创建DSN 连接到ORACLE
连接服务器
linkedserver
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproct = ] 'proct_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
C. 使用用于 Oracle 的 Microsoft OLE DB 提供程序
此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。
USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'LONDON Mktg',
'Oracle',
'MSDAORA',
'MyServer'
GO
sqlserver 怎么创建DSN 连接到ORACLE
连接服务器
linkedserver
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproct = ] 'proct_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
C. 使用用于 Oracle 的 Microsoft OLE DB 提供程序
此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。
USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'LONDON Mktg',
'Oracle',
'MSDAORA',
'MyServer'
GO
我在SqlServer上新建了一个针对oracle数据库的链接服务器,通过它可以查到表数据,却查不到视图
是不是类型转换有些问题?
建议用openquery试试,直接写oracle的查询语句并执行。
sqlserver如何创建链接服务器
打开SQL SERVER2005的管理工具:SSMS
1.展开服务器对象-->链接服务器-->右击"新建链接服务器"
注意:必须以数据库管理员身份登录(通常也就是sa帐号)后,才可以创建"链接服务器"
2.输入链接服务器的IP
3.设置链接服务器的安全性(登录远程服务器的相关账号等信息)
4.确定,即完成了链接服务器的创建
5.测试
用本地SQL帐号本地登录SqlServer,新建一个查询,输入
Select * From [链接服务器名].[远程数据库名].[所有者].[表名]
比如
Select * from [127.0.0.1].[otherServer].[dbo].[t_class]
sqlserver如何创建链接服务器
打开SQL SERVER2005的管理工具:SSMS
1.展开服务器对象-->链接服务器-->右击"新建链接服务器"
注意:必须以数据库管理员身份登录(通常也就是sa帐号)后,才可以创建"链接服务器"
2.输入链接服务器的IP
3.设置链接服务器的安全性(登录远程服务器的相关账号等信息)
4.确定,即完成了链接服务器的创建
5.测试
用本地SQL帐号本地登录SqlServer,新建一个查询,输入
Select * From [链接服务器名].[远程数据库名].[所有者].[表名]
比如
Select * from [127.0.0.1].[otherServer].[dbo].[t_class]
如何用sqlserver连oracle
安装好oracle客户端,并配置好TNS信息。
配置好odbc连接信息,sql server肯定不能直接调用oracle的客户端去连接的,只能通过odbc的方式间接的去连,先要打开odbc界面。
然后选user DSN,点Add,选择上一个画面中看到的oracle driver。
出现这页面后,在Data Source Name随便输入一个名字,这个名字就要后面sql server要用到的。TNS Service Name的下拉列表中就是oracle中配置好的TNS信息,如果你开始没有配置的话这里就为空的。你选一个TNS名字后,可以点下test connection验证下看连接上了不。
在前面创建好odbc数据源后就可以在sql server中配置。先打开management studio。在server objects下面有个Linked Servers,选中它并右击new linked server。在linked server中输入一个名字,随便取的,在后面执行sql时会用到这名字。provider就选Oracle Provider for OLE DB。 proct name就填oracle Data source就是你开始配置odbc时取的名字。其他地方就不用管了。
然后再点下Security会弹出另一个页面,在此页面最下面的地方输入用户名和密码,然后点OK。
在Linked Servers下面会看到ORA_ARWEN,大功告成了。
怎样在oracle与sql server 之间建立连接
最近用到了Oracle与Sqlserver之间的数据库连接,费了很大劲才成功,跟大家分享一下,Oracle与sqlserver都安装在windows Server 2008服务器上,不是LInux!!!我要建的是Oracle去连sqlserver的连接
http://jingyan.baidu.com/article/c910274bbe8f43cd361d2d96.html
怎样在oracle与sql server 之间建立连接
最近用到了Oracle与Sqlserver之间的数据库连接,费了很大劲才成功,跟大家分享一下,Oracle与sqlserver都安装在windows Server 2008服务器上,不是LInux!!!我要建的是Oracle去连sqlserver的连接
http://jingyan.baidu.com/article/c910274bbe8f43cd361d2d96.html
sql server与oracle链接问题
一:在sqlserver2005服务器安装oracle客户端,运行netca创建tnsname
二:按照如下图示填写
其中第一行随便填
第二,三行:按照图示填写
第四行:填写tnsname
三:按照如下填写即可,数据库登陆名:
本文出自 “一凡” 博客,请务必保留此出处http://1336014.blog.51cto.com/1326014/1670943
sql2005与oracle服务器做链接服务器
标签:oracle链接服务器
sql server与oracle链接问题
一:在sqlserver2005服务器安装oracle客户端,运行netca创建tnsname
二:按照如下图示填写
其中第一行随便填
第二,三行:按照图示填写
第四行:填写tnsname
三:按照如下填写即可,数据库登陆名:
本文出自 “一凡” 博客,请务必保留此出处http://1336014.blog.51cto.com/1326014/1670943
sql2005与oracle服务器做链接服务器
标签:oracle链接服务器
怎样在oracle与sql server 之间建立连接实现位置透明
下面是具体步骤:
1、在SQL SERVER数据库上创建测试账号和表
这里我用的是10.16.74.140的PUBS数据库,账号cyx,
create table t (c char(10));
2、我测试所用数据库和透明网关是在同一台机器上,在我本机:10.16.98.16,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。
3、安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:
HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"
4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容:
(SID_NAME = tg4msql) # SID自己命名
(ORACLE_HOME = c )
(PROGRAM = tg4msql)
5、在oracle server上的tnsnames.ora中加入到透明网关的tnsname,内容如下:
sql2k =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521)) #此处HOST填的是透明网关SERVER的地址
)
(CONNECT_DATA = (SID = tg4msql) ) #此SID应和透明网关SERVER上设定的SID相同
(HS=OK)
)
6、修改ORACLE SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL NAME。然后重起数据库。
7、现在在ORACLE SERVER上创建DB LINK就可以了。下面实验数据:
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Proction on 星期三 6月 25 13:29:41 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys/change_on_install as sysdba
已连接。
SQL> create user cyx identified by cyx default tablespace users;
用户已创建
SQL> grant connect to cyx;
授权成功。
SQL> grant resource to cyx;
授权成功。
SQL> conn cyx/cyx
已连接。
SQL> create database link tosql2k connect to cyx identified by cyx using
2 'sql2k';
数据库链接已创建。
SQL> select * from t@tosql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
已选择7行。
SQL> insert into t@tosql2k values('ncn.cn');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t@tosql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
ncn.cn
已选择8行。
以上示例,oracle server和透明网关server都是在同一台机器上,像在开始说明的那样,我们同样可以在其他下面oracle server中通过透明网关来访问sql server的数据。下面是示例:
现在这个oracle server上添加tnsname。
hawk3$sqlplus cyx
SQL*Plus: Release 8.1.7.0.0 - Proction on Wed Jun 25 14:00:34 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Enter password:
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction
SQL> create database link hawk3_sql2k connect to cyx identified by cyx
2 using 'sql2k';
Database link created.
SQL> select * from t@hawk3_sql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
ncn.cn
8 rows selected.
注:很多朋友问到关于透明网关的一些问题,在此加以说明如下:
1、Oracle For SQL Server的透明网关在UNIX下无法实现,目前只支持WIN; 原因很简单,SQL Server本身不支持UNIX,所以Oracle也无法直接在UNIX下访问SQL Server。
2、Oracle For其它数据库的透明网关,如SYBASE等有UNIX本版本的数据库在UNIX可以实现。
3、Oracle透明网关软件在Oracle 8i时是需要花钱另买的,大约1万$;到Oracle 9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。
4、针对我们的实际应用,如果有需要实现Oracle 到SQL Server的互连,我们需要另外用一台WIN下的Oracle 9i来做透明网关服务器,其它UNIX下的Oracle通过这个透明网关来访问SQL Server。
5、不同数据库间的数据处理需使用标准SQL来实现。
6、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。
怎样在oracle与sql server 之间建立连接实现位置透明
下面是具体步骤:
1、在SQL SERVER数据库上创建测试账号和表
这里我用的是10.16.74.140的PUBS数据库,账号cyx,
create table t (c char(10));
2、我测试所用数据库和透明网关是在同一台机器上,在我本机:10.16.98.16,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。
3、安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:
HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"
4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容:
(SID_NAME = tg4msql) # SID自己命名
(ORACLE_HOME = c )
(PROGRAM = tg4msql)
5、在oracle server上的tnsnames.ora中加入到透明网关的tnsname,内容如下:
sql2k =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521)) #此处HOST填的是透明网关SERVER的地址
)
(CONNECT_DATA = (SID = tg4msql) ) #此SID应和透明网关SERVER上设定的SID相同
(HS=OK)
)
6、修改ORACLE SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL NAME。然后重起数据库。
7、现在在ORACLE SERVER上创建DB LINK就可以了。下面实验数据:
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Proction on 星期三 6月 25 13:29:41 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys/change_on_install as sysdba
已连接。
SQL> create user cyx identified by cyx default tablespace users;
用户已创建
SQL> grant connect to cyx;
授权成功。
SQL> grant resource to cyx;
授权成功。
SQL> conn cyx/cyx
已连接。
SQL> create database link tosql2k connect to cyx identified by cyx using
2 'sql2k';
数据库链接已创建。
SQL> select * from t@tosql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
已选择7行。
SQL> insert into t@tosql2k values('ncn.cn');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t@tosql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
ncn.cn
已选择8行。
以上示例,oracle server和透明网关server都是在同一台机器上,像在开始说明的那样,我们同样可以在其他下面oracle server中通过透明网关来访问sql server的数据。下面是示例:
现在这个oracle server上添加tnsname。
hawk3$sqlplus cyx
SQL*Plus: Release 8.1.7.0.0 - Proction on Wed Jun 25 14:00:34 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Enter password:
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction
SQL> create database link hawk3_sql2k connect to cyx identified by cyx
2 using 'sql2k';
Database link created.
SQL> select * from t@hawk3_sql2k;
c
abc
aaa
bbb
cyx
gototop
ncn
11111
ncn.cn
8 rows selected.
注:很多朋友问到关于透明网关的一些问题,在此加以说明如下:
1、Oracle For SQL Server的透明网关在UNIX下无法实现,目前只支持WIN; 原因很简单,SQL Server本身不支持UNIX,所以Oracle也无法直接在UNIX下访问SQL Server。
2、Oracle For其它数据库的透明网关,如SYBASE等有UNIX本版本的数据库在UNIX可以实现。
3、Oracle透明网关软件在Oracle 8i时是需要花钱另买的,大约1万$;到Oracle 9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。
4、针对我们的实际应用,如果有需要实现Oracle 到SQL Server的互连,我们需要另外用一台WIN下的Oracle 9i来做透明网关服务器,其它UNIX下的Oracle通过这个透明网关来访问SQL Server。
5、不同数据库间的数据处理需使用标准SQL来实现。
6、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。