C# 中不同数据库(如 Oracle 和 SQL Server)之间的 Sql 查询 [关闭]
Posted
技术标签:
【中文标题】C# 中不同数据库(如 Oracle 和 SQL Server)之间的 Sql 查询 [关闭]【英文标题】:Sql Query Between Different Databases like Oracle and SQL Server in C# [closed] 【发布时间】:2017-08-25 13:49:38 【问题描述】:我有两个数据库Sql Server和Oracle数据库,例子:
tableA sql server tableB sql server tableC 甲骨文 tableD 甲骨文 tableE 甲骨文 tableF 甲骨文【问题讨论】:
我不完全确定我是否理解了您的问题。但我认为您正在寻找的技术是linked servers。 当然链接服务器就是答案非常感谢:) 【参考方案1】:您需要先安装 Oracle 客户端。谷歌“Oracle 数据库客户端窗口”以从 Oracle 的站点找到下载。
1) 先安装 64 位包。 (非常重要,因为如果您先安装 x86 软件包,则会出现一个错误)
2) 将安装路径更改为“C:\oracle\x64”
3) 安装后安装 32 位软件包
4) 将安装路径更改为“C:\oracle\x86”
5) 安装完成后导航到 "C:\oracle\x86\11.2.0\client_1\network\admin"
在#5 的文件夹中创建或编辑名为“sqlnet.ora”的文件。将以下内容放入文件中:
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
6) 在此目录中创建或编辑名为“TNSNAMES.ora”的文件。输入您的正常 TNS 连接字符串(您的 Oracle DBA 可能知道这一点)。下面是一个例子:
ServerInstanceName =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL =TCP) (PORT=1529) (HOST=192.168.1.100))
)
(CONNECT_DATA=
(SID=ServerInstanceName)
)
)
其中 ServerInstanceName 是您的 Oracle 服务器的 SID
7) 使用您需要连接的任何服务器更新 TNSNAMES.ora
8) 将这些文件复制到“C:\oracle\x64\11.2.0\client_1\network\admin”
9) 重启机器
现在您应该已经安装了 Oracle 客户端,并且您可以设置一个链接服务器以供 SQL Server 连接。打开 SSMS 并连接到您的服务器。展开服务器对象,然后右键单击“链接服务器”并单击“新建链接服务器”
1) 将链接服务器名称设置为查询时要调用的服务器名称,即 OracleSvr
2) 将提供程序更改为“Oracle Provider for OLE DB”
3) 对于产品名称,请输入“OraOLEDB.Oracle.1”
4) 对于数据源,输入与 TNS 文件中服务器名称相同的值,即我们示例中的 ServerInstanceName。
5) 转到左侧的安全性。
6) 设置您希望进行登录的任何方式。如果不知道怎么做这个谷歌它
7) 转到左侧的服务器选项。
8) 确保 Data Access、RPC、RPC Out、Use Remote Collation 都设置为 True。
9) 点击确定。
10) 开放服务器对象 --> 链接服务器 --> 提供者
11) 右键单击 OraOLEDB.Oracle 并单击属性
12) 点击“允许进程内”下的启用点击确定。
您现在应该能够从 SQL 服务器中查询服务器。
select * from OracleSvr..SchemaName.TableName
【讨论】:
这是对一个稍微不同的问题的非常详细的回答。虽然这可能是 OP 应该问的问题。 非常感谢您的回答,这节省了我的时间:) (APC) 我的问题在更新之前我如何从 C# 后面的代码中制作这种技术(链接服务器)但是在 cmets 我更新了问题之后,谢谢以上是关于C# 中不同数据库(如 Oracle 和 SQL Server)之间的 Sql 查询 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
sql server,mysql,oracle有啥相通点和语法区别?
Oracle 数据库和 .NET (C#) - 如何防止 SQL 注入