Oracle 和 MSsql 是我们最常见的两个关系型数据库管理系统,它们是数据库设计的两款功能强大的选择,特别是在企业用户的眼中都有着其独特的重要性。然而,有时候我们可能会遇到客户希望Oracle和MSSQL存储库之间建立连接,甚至可能是在不同的主机上。
虽然Oracle和MSSQL之间跨越连接并非不可能实现,但比较起来,表结构和查询语句会有明显的差异,安全认证和版本不同,把它们放在同一台 服务器 上也是有风险的。为解决以上问题,微软引入了数据库连接器,以提供跨越数据库的功能,来解决Oracle与MSSQL的连接步骤。其基本原理是,在Oracle 服务器上部署ORACLE客户端,以及在MSSQL 服务器上部署 MS SQL客户端,在两个服务器之间建立 tunnel 连接,从而实现Oracle与MSSQL的跨越连接。
可以采用如下步骤实现Oracle和MSSQL之间的跨越连接:
1、在两个不同的服务器上分别安装Oracle和MSSQL数据库软件
2、在Oracle服务器上部署最新版本的ODBC驱动程序
3、在MSSQL服务器上部署最新版本的 OLEDB 驱动程序
4、配置ORACLE客户端以建立Tunnel连接
5、在两台服务器的客户端上配置相应的数据源
6、建立连接通过ODBC连接Oracle和MSSQL
7、使用SQL语句同步数据库连接
实现上述步骤之后,我们可以使用如下代码跨越连接Oracle和MSSQL数据库:
// 使用C#.Net
string oracons = “Provider=OraOLEDB.Oracle.1;Data Source=sourcedb;User ID=someuser;Password=somepw;”;

string mssqlcons = “Provider=SQLOLEDB;Data Source=targetserver;Initial Catalog=targetdb;User Id=someuser;Password=somepw;”;
// 连接Oracle
OleDbConnection connection = new OleDbConnection(oracons);
connection.Open();
// 连接MSSQL
SqlConnection sqlConnection = new SqlConnection(mssqlcons);
sqlConnection.Open();
// 跨越连接 Oracle 和 MSSQL
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connection;
cmd.CommandText = “SELECT * FROM table_name”;
OleDbDataReader reader = cmd.ExecuteReader();
// 将 Oracle 数据插入 MSSQL
string strInsert=””;
while (reader.Read())
// 构建insert 语句
strInsert = “Insert into table2 values(‘”
+ reader[0] + “‘, ‘”+ reader[1] +”‘,”+ “‘” + reader[2] + “‘)
// 执行insert语句
SqlCommand sqlCmd = new SqlCommand(strInsert, sqlConnection);
sqlCmd .ExecuteNonQuery();
以上就是实现Oracle和MSSQL之间跨越连接的完整步骤。采用以上步骤以 **ODBC 和 OLEDB 驱动** 从Oracle 中将信息读出,再使用SQL语句将数据插入到MSSQL中,即可实现跨越连接。它的实施除了能让这两个数据库之间的信息转移更容易地进行之外,还可以节省企业主管的很多时间和精力。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。
那我觉得你还是要检查一下那个报错页面,查一下报错代码。 在本地运行正常的程序,在本地确实没错,但这不代表在其他地方运行就正常。 易发性的问题多半是路径和连接串等。 (1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击服务的连接的外围应用配置器,在打开的界面中找到Database Engine,单击服务,在右侧查看是否已启动,如果没有启动可单击启动,并确保启动类型为自动,不要为手动,否则下次开机时又要手动启动;(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的启动服务按钮把服务状态改为启动; 使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看SQL Server 2005配置管理器中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了。 2.进行远程连接时,是否已允许远程连接 Server 2005 在默认情况下仅限本地连接.我们可以手动启用远程连接.在上面第一种方式中,找到Database Engine,单击远程连接,在右侧将仅限本地连接(L)改为本地连接和远程连接(R),并选中同时使用TCP/IP和named pipes(B).
SQL:左连接,右连接是什么概念啊
connect scott/scott@ora9i 查看如下语句: SELECT ename , dname FROM Emp, Dept WHERE (+) = 也可以写成: SELECT ename , dname FROM Emp RIGHT JOIN Dept ON = 此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。 反之: 查看如下语句: SELECT ename , dname FROM Emp, Dept WHERE = (+) 也可以写成: SELECT ename , dname FROM Emp LEFT JOIN Dept ON = 则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示 不知道这样解释你觉得怎么样?
如何解决sql server中登录名sa登录失败的问题
用户名及密码更改
发表评论