SQL Server 连接到 Oracle 可以通过两种方式实现:使用 Linked Server 或使用 Oracle Data Provider for .NET(ODP.NET)。
使用 Linked Server 连接 Oracle:
1. 安装 Oracle 客户端:在 SQL Server 中安装 Oracle 客户端,确保 Oracle 客户端版本与要连接的 Oracle 数据库版本兼容。
2. 创建 Oracle 登录账号:使用 Oracle SQL Developer 或类似工具创建要连接的 Oracle 数据库登录账号,该账号至少需要具有 SELECT 权限。
3. 创建 Linked Server:在 SQL Server 中创建一个 Linked Server 并将其与 Oracle 数据库相关联,可以使用 SQL Server Management Studio 或脚本实现。脚本示例:
“`
EXEC master.dbo.sp_addlinkedserver
@server = N’ORA_DS’,
@srvproduct = N’Oracle’,
@provider = N’OraOLEDB.Oracle’,
@datasrc = N’ORCL’,
@provstr = N’USER ID=username;PASSWORD=password’;
“`
其中,
– @server:指定 Linked Server 名称;
– @srvproduct:指定数据库类型,这里使用 Oracle;
– @provider:指定使用的数据驱动程序,这里使用 OraOLEDB.Oracle;
– @datasrc:指定连接字符串,这里使用 ORCL 数据库;
– @provstr:指定数据库登录账号和密码。
4. 测试连接:验证连接是否成功,可以使用以下脚本验证:
“`
SELECT * FROM OPENQUERY(ORA_DS, ‘SELECT * FROM table_name’);
“`
其中,ORA_DS 为 Linked Server 名称,table_name 为 Oracle 数据库中的表名。
使用 ODP.NET 连接 Oracle:
1. 安装 ODP.NET:下载和安装 ODP.NET 驱动程序,确保该驱动程序版本与要连接的 Oracle 数据库版本兼容。
2. 导入命名空间:在项目中导入 Oracle.DataAccess 命名空间。
3. 设置连接字符串:使用以下代码设置连接字符串,其中,USER ID 和 PASSWORD 分别为 Oracle 数据库登录账号和密码:
“`
string connectionString = "Data Source=ORCL;User Id=USERNAME;Password=PASSWORD;";
“`
其中,ORCL 为 Oracle 数据库名。
4. 创建连接对象:使用以下代码创建连接对象:
“`
using Oracle.DataAccess.Client;
// …
OracleConnection connection = new OracleConnection(connectionString);
“`
5. 打开连接:使用以下代码打开连接:
“`
connection.Open();
“`
6. 执行查询:使用以下代码执行查询:
“`
string sql = "SELECT * FROM table_name";
OracleCommand command = new OracleCommand(sql, connection);
OracleDataReader reader = command.ExecuteReader();
“`
其中,table_name 为 Oracle 数据库中的表名。
7. 处理数据:使用以下代码处理查询结果:
“`
while (reader.Read())
{
// 处理每一行数据
}
“`
8. 关闭连接:使用以下代码关闭连接:
“`
reader.Close();
connection.Close();
“`
以上就是使用 Linked Server 或 ODP.NET 连接 Oracle 的步骤。其中,使用 Linked Server 连接需要在 SQL Server 上创建 Linked Server,使用 ODP.NET 则需要在代码中创建连接对象。具体应根据实际情况选择合适的方式。