sql server2005 建立连接服务器时访问接口没有microsoft ole db provider for oracle选项

sql server2005 建立连接服务器时访问接口没有microsoft ole db provider for oracle选项,第1张

需要在“服务器对象”——>“链接服务器”——>“访问接口”下,找到OraOLEDBOracle选项,单击右键选择属性,然后在访问接口选项下勾选“允许进程内”(Allow inprocess),即可解决上面问题,有时候,可能需要重新新建此链接服务器。

但我们大多数人都没有那么幸运。有时,我们需要的数据并非数据库格式,或者位于不同的服务器上。SQL Server具有足够的灵活性,提供大量你收集数据时所需要的方法。其中最方便的方法之一是使用链接服务器(linked server)直接连接数据。(微软SQL Server 2005 Express Edition也支持链接服务器。)何为链接服务器?简单来说,链接服务器是指与对象链接和嵌入数据库(OLEDB)数据源建立的一个连接。技术上说,OLEDB是一个从一系列数据源中恢复数据的标准微软API。如果这个解释还不够清楚,不用担心。好消息是,它足够灵活,可以连接数据库和非数据库格式,如一个电子表格或电子邮件客户端。简而言之,SQL Server支持任何OLEDB提供程序(也叫做驱动器)。另一个好消息:你可以使用Trnasact-sql或Management Studio来建立连接。建立一个链接服务器后,SQL Server就可以登录到另一台数据库服务器。那表示你可以在一台远程服务器上运行查询。你可以任意使用两种类型的链接服务器查询:特殊链接和永久链接。特殊链接技术上说,你不必使用“链接服务器”这个名词来确定一个特殊查询。那个名词实际上是指一个SQL Server对象。但是,你会经常看到这个名词用来指特殊链接查询。特殊查询打开和关闭一个连接。永久链接服务器一直可用。通过OPENROWSET完成非频繁的链接任务,使用以下语法:OPENROWSET('providername', 'datasource', 'username', 'password', object)OPENROWSET消耗更少的数据库空间。使用合法的Transact-sql语句来 *** 作重新恢复的数据。其自变量不需要加以说明,但要记住的是,datasource是指数据源的完整路径,而不只是一个文件名。此外,provider提供SQL Server需要进入并收集数据的指令。它们专门针对你所访问的外来软件。现在,我们来看一个简单的特殊查询实例,并选择微软Access样本数据库Northwind的Employees表中的所有记录:SELECTFROM OPENROWSET('MicrosoftJetOLEDB40','C:Program FilesMicrosoft OfficeOffice11Office11SamplesNorthwindmdb';'admin';'', Employees)AS EmployeesFromAccess图A显示的是迅速恢复的结果,它要求用户(管理员)拥有适当的许可。(如果你想运行这个查询,一定要把路径更新到Northwindmbd,以与你的系统相适应。)提供程序字符串专门针对数据引擎Jet。AS关键字为SQL Server中的新表提供一个名称。图A:使用OPENROWSET完成外来数据的非频繁查询(Express版)。如果特殊查询返回错误消息,你可能需要激活特殊查询特性。(默认情况下,SQL Server禁用特殊查询。)要激活特殊查询,运行SQL Server配置管理器(SQL Server Express版外围应用配置器),点击外围配置特性(Surface Area Configuration For Features)链接,并查看激活OPENROWSET和OPENDATASOURCE支持(Enable OPENROWSET And OPENDATASOURCE Support)选项。然后,点击OK并关闭实用工具。

1 确保服务器端的数据库中存在sa,并支持混合登录模式默认安装的时候,可能会忽略建立sa
2 确保服务器端的数据库是支持远程调用的打开SQL Server Management Studio,选择该数据库,右键菜单"Properties",在打开的对话框中选择Connections,把Allow remote connections to this server选上
3 确保服务器端的SQL服务的TCP/IP是Enable的打开SQL Server Configuration Manager 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 把Named Pipes和TCP/IP都修改为Enabled,默认是Disabled
4 确保服务器端的SQL实例的远程调用是支持TIP/IP和named pipes的 打开SQL Server Surface Area Configuration Manager,在打开的页面中选择Surface Area Configuration for Services and Connections选中实例的Remote Connections,把Using both TCP/IP and named pipes选中
5 重启服务器端的SQL Server 2005服务,确保SQL Server Agent和SQL Server Browser的服务也启动了 默认都是需要手动启动,可以改成Automatic
6 因为服务器端的 *** 作系统是WinXp+SP2,所以还需要检查防火墙确保防火墙中的1433端口打开了
另外, SQL Server 2005的默认端口可能不是1433 我们需要手动修改一下 打开SQL Server Configuration Manager 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 查看TCP/IP的属性在打开的对话框中选择IP Address, 把到IPAll下的TCP Dymanic Ports改为0,TCP Port的值修改为1433
在Windows防火墙中的Exceptions中Add Port:TCP 1433和UDP 1434, 同时还需要Add Program先打开SQL Server Configuration Manager,在SQL Server 2005 Services中选中SQL Server,查看属性,在Advanced中记下Instance ID如(MSSQL1)
在防火墙的Exceptions中Add Program,找到诸如\Microsoft SQL Server\MSSQL1\MSSQL\Binn\sqlservrexe,添加
所有这些都做完了,客户端应该就可以访问了,最好客户端也在自己的Configration Manager的Client Configuration中设置TCP/IP为Enabled

如何使用sqlserver2008来远程连接sqlserver2000
服务器对象->链接服务器的功能点,用户首先创建一个远程DB的链接对象,之后就可以像本地表一样执行表的DML了。创建步骤:服务器对象->链接服务器->右击新建链接服务器,创建链接服务器,安全性选项中设置远程数据库的账号和密码。注意事项:链接服务器:一般为服务器的IP地址;如果为SQLServer则点SQLServer;注意事项:右键点击远程链接->属性->服务器选项->Rpc和RpcOut,这两个值需要设置为True。

要求
下面的列表列出了推荐使用的硬件、软件、网络架构以及所需的 Service Pack:
Microsoft SQL Server 70、Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 的可用实例
Microsoft Visual Basic 60(针对使用 Visual Basic 的 ADO 示例)
本文的部分内容假定您熟悉下列主题:
数据传输服务
链接服务器和分布式查询
Visual Basic 中的 ADO 开发
回到顶端
示例
导入与追加
本文使用的示例 SQL 语句演示了“创建表”查询。该查询通过使用 SELECTINTOFROM 语法将 Excel 数据导入新的 SQL Server 表。如这些代码示例所示,在继续引用源对象和目标对象时,可以通过使用 INSERT INTOSELECTFROM 语法将这些语句转换成追加查询。
使用 DTS 或 SSIS
可以使用“SQL Server Data Transformation Services (DTS) 导入向导”或“SQL Server 导入和导出向导”将 Excel 数据导入到 SQL Server 表中。在逐步执行向导并选择 Excel 源表时,要记住附加美元符号 ($) 的 Excel 对象名称代表工作表(例如,Sheet1$),而没有美元符号的普通对象名称代表 Excel 指定的范围。
使用链接服务器
要简化查询,可以将 Excel 工作簿配置为 SQL Server 中的链接服务器。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
306397 如何:结合 SQL Server 链接的服务器和分布式查询使用 Excel
下列代码将 Excel 链接服务器“EXCELLINK”上的 Customers 工作表数据导入新的名为 XLImport1 的 SQL Server 表:
SELECT INTO XLImport1 FROM EXCELLINK[Customers$]

还可以通过按照以下方式使用 OPENQUERY 以全通过方式对源数据执行查询:
SELECT INTO XLImport2 FROM OPENQUERY(EXCELLINK,
'SELECT FROM [Customers$]')

使用分布式查询
如果不想将对 Excel 工作簿的永久连接配置为链接服务器,可以通过使用 OPENDATASOURCE 或 OPENROWSET 函数为特定目的导入数据。下列代码示例也能将 Excel Customers 工作表数据导入新的 SQL Server 表:
SELECT INTO XLImport3 FROM OPENDATASOURCE('MicrosoftJetOLEDB40',
'Data Source=C:\test\xltestxls;Extended Properties=Excel 80')[Customers$]
SELECT INTO XLImport4 FROM OPENROWSET('MicrosoftJetOLEDB40',
'Excel 80;Database=C:\test\xltestxls', [Customers$])
SELECT INTO XLImport5 FROM OPENROWSET('MicrosoftJetOLEDB40',
'Excel 80;Database=C:\test\xltestxls', 'SELECT FROM [Customers$]')

使用 ADO 和 SQLOLEDB
当通过使用 Microsoft OLE DB for SQL Server (SQLOLEDB) 在 ADO 应用程序中连接到 SQL Server 时,可以使用与“使用分布式查询” 一节中相同的“分布式查询”语法将 Excel 数据导入 SQL Server。
下列 Visual Basic 60 代码示例要求添加对 ActiveX 数据对象 (ADO) 的项目引用。此代码示例还演示了如何在 SQLOLEDB 连接上使用 OPENDATASOURCE 和 OPENROWSET。
Dim cn As ADODBConnection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODBConnection
cnOpen "Provider=SQLOLEDB;Data Source=<server>;" & _
"Initial Catalog=<database>;User ID=<user>;Password=<password>"
'Import by using OPENDATASOURCE
strSQL = "SELECT INTO XLImport6 FROM " & _
"OPENDATASOURCE('MicrosoftJetOLEDB40', " & _
"'Data Source=C:\test\xltestxls;" & _
"Extended Properties=Excel 80')[Customers$]"
DebugPrint strSQL
cnExecute strSQL, lngRecsAff, adExecuteNoRecords
DebugPrint "Records affected: " & lngRecsAff
'Import by using OPENROWSET and object name
strSQL = "SELECT INTO XLImport7 FROM " & _
"OPENROWSET('MicrosoftJetOLEDB40', " & _
"'Excel 80;Database=C:\test\xltestxls', " & _
"[Customers$])"
DebugPrint strSQL
cnExecute strSQL, lngRecsAff, adExecuteNoRecords
DebugPrint "Records affected: " & lngRecsAff
'Import by using OPENROWSET and SELECT query
strSQL = "SELECT INTO XLImport8 FROM " & _
"OPENROWSET('MicrosoftJetOLEDB40', " & _
"'Excel 80;Database=C:\test\xltestxls', " & _
"'SELECT FROM [Customers$]')"
DebugPrint strSQL
cnExecute strSQL, lngRecsAff, adExecuteNoRecords
DebugPrint "Records affected: " & lngRecsAff
cnClose
Set cn = Nothing

使用 ADO 和 Jet Provider
上一节中的示例使用 ADO 和 SQLOLEDB Provider 连接到从 Excel 到 SQL 导入的目标。也可以使用 OLE DB Provider for Jet 40 来连接到 Excel 源。
Jet 数据引擎可以通过使用具有三种不同格式的特殊语法来在 SQL 语句中引用外部数据库:
[Full path to Microsoft Access database][Table Name]
[ISAM Name;ISAM Connection String][Table Name]
[ODBC;ODBC Connection String][Table Name]
本节使用第三种格式创建到目标 SQL Server 数据库的 ODBC 连接。可以使用 ODBC 数据源名称 (DSN) 或者 DSN-less 连接字符串:
DSN:
[odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]
DSN-less:
[odbc;Driver={SQL Server};Server=<server>;Database=<database>;
UID=<user>;PWD=<password>]

下列 Visual Basic 60 代码示例要求添加对 ADO 的项目引用。此代码示例演示了如何使用 Jet 40 Provider 通过 ADO 连接将 Excel 数据导入到 SQL Server。
Dim cn As ADODBConnection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODBConnection
cnOpen "Provider=MicrosoftJetOLEDB40;" & _
"Data Source=C:\test\xltesttxls;" & _
"Extended Properties=Excel 80"

'Import by using Jet Provider
strSQL = "SELECT INTO [odbc;Driver={SQL Server};" & _
"Server=<server>;Database=<database>;" & _
"UID=<user>;PWD=<password>]XLImport9 " & _
"FROM [Customers$]"
DebugPrint strSQL
cnExecute strSQL, lngRecsAff, adExecuteNoRecords
DebugPrint "Records affected: " & lngRecsAff

cnClose
Set cn = Nothing

也可以通过使用该语法(Jet Provider 支持)将 Excel 数据导入其他 Microsoft Access 数据库、索引顺序存取方法 (ISAM)(“desktop”)数据库或 ODBC 数据库。

参考资料:

>设置到 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 驱动程序和都需要 SQLNet 23x或更高版本。您必须在客户端计算机上安装 Oracle 73x 客户端软件或更高版本。客户端计算机是运行 SQL Server 的计算机。
确保您已经在运行 SQL Server 的计算机上安装了 MDAC 25 或更高版本。如果使用 MDAC 21 或更早版本,则无法连接到使用 Oracle 8x 或更高版本的数据库。
要使 MDAC 25 或更高版本能够与 Oracle 客户端软件一起工作,必须按照下表中的说明修改运行 SQL Server 的客户端计算机的注册表。

直接


[数据库名][用户名][表名或对象名]


当然你得有访问权限(比如select、update、execute等)

服务器1 数据库1 表1里有字段 a1,b1,c1,d1;


服务器2 数据库2 表2里有字段 a2,b2,c2,d2;


服务器3 数据库3 表3里有字段 a3,b3,c3,d3,e3;(此表现无数据)


需要将表1中a1,b1字段,表2中c2,d2字段插入到 表3中的a3,b3,c3,d3字段里


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13418663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-01
下一篇 2023-08-01

发表评论

登录后才能评论

评论列表(0条)

保存