将数据从SQL Server重复移动到Oracle

时间:2009-02-20 20:11:00

标签: sql-server database oracle

定期将表数据从SQL Server移动到Oracle(在* nix上)的最合理方法是什么?

6 个答案:

答案 0 :(得分:9)

使用SQL Server Integration Services(SSIS)可能是您最好的选择。如果您不熟悉SSIS,尝试解决问题的最佳方法是使用SQL Server导出向导并让它为您创建一个SSIS包。例如,如果您进入SQL Server Management Studio并右键单击数据库,则选择“任务” - >“导出数据”。从那里单击下一步,直到进入“选择目的地”步骤。选择“Microsoft OLE DB Provider for Oracle”,然后单击“属性”以定义数据库连接。单击向导时,在“保存并执行”页面上,确保选中“保存SSIS包”复选框,在下一个屏幕上指定保存SSIS包的位置。完成导出向导后,您的数据将被导出,您将拥有一个可以按原样使用的SSIS包,或者进入并调整它以执行更具体的操作。 获得SSIS包后,可以通过创建SQL Server代理作业来安排它。

答案 1 :(得分:6)

  • Oracle Heterogeneous Connectivity / Database Gateways以及物化视图,PL / SQL或Java
  • SSISDTS:两者都可以安排,但需要的只是对SQL Server的只读访问权限
  • Java(可能在Oracle中但可选择在操作系统中)使用ODBC或SQLJ访问SQL Server,可能还有Oracle
  • SQL Server计划导出为CSV,Oracle计划从CSV导入
  • 任何其他ETL工具(例如Informatica,Cognos)
  • 可以访问两个数据库的任何无数语言(但需要维护第三个环境以在其中运行应用程序)

调度:

  • 自动/不需要具体化视图
  • Oracle DBMS_JOB / DBMS_SCHEDULER
  • 特定于操作系统(cron,Windows计划任务等)
  • 对于在SQL Server中安排的SSIS,DTS或CSV导出

答案 2 :(得分:2)

您可以通过SSIS(或DTS for 2k)直接与Oracle建立SQL Server接口。它将提供ETL功能,并可定期安排。

答案 3 :(得分:2)

创建从Oracle到Sql Server的数据库链接(异构连接)。您可以使用此链接通过简单的select语句从Sql Server检索数据。如果要安排,可以使用实体化视图或dbms_scheduler。

另一种方法是将您的数据放在csv文件中,您可以使用外部表或sqlloader在Oracle数据库中加载此数据。

答案 4 :(得分:1)

我成功创建了一个链接服务器(从企业管理器中,我认为)到SQL Server端的Oracle。然后我可以使用两侧的普通存储过程来完成较小的数据移动和两个方向的更新。这种方法可以避免尝试在数据库之外放置一些东西的需要。

尽量尝试在SQL Server端使用最新的Oracle客户端。我记得10.2.0.2客户端的一些缺陷,并且让10.2.0.4客户端需要您的“官方”Oracle注册或购买号码等。

对于大数据移动(或者甚至是您希望每天或不太频繁地移动/更新),请务必使用其中一个ETL工具。我们的ETL流程有Informatica,但如果SSIS能够满足您的需求,那也没关系。

答案 5 :(得分:1)

这是我做的: Oracle SQL开发人员使用以下链接连接到SQL Server: https://kentgraziano.com/2013/01/14/tech-tip-connect-to-sql-server-using-oracle-sql-developer/

添加SQL jar后,您将在“连接”窗口中看到“SQL Server”选项卡:

enter image description here

然后连接到SQL实例。

然后打开SQL实例并选择要复制的数据库或表。右键单击任何数据库/表,然后单击“复制到oracle”,并在“目标连接名称”中选择要复制表的正确用户[数据库]。

您还可以在那里更改一些属性。 点击“确定”即可。

如有任何问题,请告诉我。