Oracle到SQL迁移

我目前正在开始Oracle到SQL 2008迁移的项目。 由于我正在阅读正式的SSMA从Oracle迁移到SQL Server 2005的指南,所以我想从个人经验中获得build议和指引。

出现问题的指导和文章有组织的方式高调,discutions和解决scheme将被认可。

谢谢

Oracle和SQL Server与pipe理和数据库使用情况有很大的不同。

数据库使用

准备花费相当多的时间移植。 一些问题在我头顶:

PL / SQL与T-SQL

这些语言本身不同,需要为脚本和存储过程进行重要的移植工作。 从不同的连接运算符( || vs. + )到函数名称和细节( NVL vs. COALESCE ),概念差异(exception处理,区分大小写)的变化。 其他一些例子:

游标与临时表

在Oracle中使用游标进行的大多数操作都是在SQL Server中使用临时表完成的。

序列与身份

它们大部分是等价的,但是你必须改变使用它们的任何过程的语法。

数据库pipe理

它们大多具有相同的特征,有时以不同的名称,具有不同的副作用。 一些亮点:

  • 数据(un)加载(数据泵或sql * loader或exp / imp与DTS或bcp)
  • 数据字典(DBA_ *与INFORMATION_SCHEMA)
  • 事务日志设置(存档日志与恢复模式)
  • 表格types(索引组织索引与聚集索引)
  • locking机制(读取不locking在Oracle中,而不是在SQL服务器中locking)

简而言之,从Oracle到SQL Server(或反之亦然)有一个相当大的学习曲线。 随意添加到这个列表。

Oracle和SQL Server之间有一些不重叠的function,并且在很多方面它们的工作方式有很大不同。 例如:

  • Oracle没有与标识列直接等价的东西。 使用序列可以完成不同的function。

  • PL / SQL和T-SQL是完全不同的语言。 如果你有大量的存储过程代码,准备花费大量的时间移植它。 而且,t-sql习惯用法与PL / SQL经常大相径庭。

    例如,T-SQL比PL / SQL在set-ops上好得多,PL / SQL在使用游标(例如并行循环结构)方面要好得多。 在PL / SQL中反复完成的一些事情可能更好地使用T-SQL中的set ops和temp表完成。

  • SQL Server中的比较默认情况下不区分大小写。 Oracle中的比较区分大小写。

  • 在SQL Server中使用表分区与Oracle相比是非常不同的(而且更笨拙)。

Microsoft拥有一整套资源,可帮助将应用程序和数据库从Oracle迁移到SQL Server 2008.在SQL Server 2008解决scheme的主迁移页面解决scheme – 迁移 – 它包括迁移方法,帮助您的工具以及一些客户推荐。

希望这可以帮助。

本主题为“ 从Oracle迁移到SQL Server 80%努力 ”主题的video教程可能会为您提供完整的图片。

videourl: http : //wtv.watchtechvideos.com/topic307.html

我更喜欢第三方应用程序来迁移我的数据,我使用数据加载器时,我正在迁移MS SQL Foxpro它工作很好,它可以迁移几乎任何数据库。

免费下载: http : //www.dbload.com