SSMA for Oracle 中的新增功能(OracleToSQL)
本文列出了每个版本中适用于 Oracle 的 SQL Server 迁移助手 (SSMA) 的更改。
注意
虽然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名称,但为了防止中断现有环境,Azure AD 仍保留在一些硬编码的元素中,例如 UI 字段、连接提供程序、错误代码和 cmdlet。 在本文中,这两个名称可以互换。
SSMA v10.0
SSMA for Oracle 的 v10.0 版本包含以下更改:
- 使用 Azure 数据迁移服务进行 Oracle 数据移动
- Oracle 工作负荷的 SKU 建议和工作负荷评估
- 支持全局Microsoft Entra ID 身份验证
SSMA v9.5
SSMA for Oracle 的 v9.5 版本包含以下更改:
- 支持在 SSMA 控制台模式下排除架构
SSMA v9.4
SSMA for Oracle 的 v9.4 版本包含以下更改:
- 使用大容量仿真函数添加对 BULK COLLECT 转换的支持,以在单个提取中检索多行。
- 通过大规模迁移修复迁移中丢失订阅的问题。
- 改进 DECODE 函数的转换。
- 使用 . 改进空字符串
NULL
比较的转换。
SSMA v9.3
SSMA for Oracle 的 v9.3 版本包含以下更改:
- 添加对 SQL Server 2022 目标的支持
SSMA v9.2
SSMA for Oracle 的 v9.2 版本包含以下更改:
- 添加对旧版 Unicode 字符串文本的支持
- 在 ESCAPE 子句中添加对任意表达式的支持
- 针对 EXTRACT(XML) 和 XMLQUERY 的转换支持
- 增强对大规模迁移的数据管道监视
- 对 EXTRACT(XML)、EXTRACTVALUE 和 XMLQUERY 的转换支持
- 支持 Azure 数据工厂 (ADF) 管道监视
SSMA v9.1
SSMA for Oracle 的 v9.1 版本包含以下更改:
- 支持通过 Azure 数据工厂的集成将数据从 Oracle 大规模迁移到 SQL
- 添加对排除系统生成的不可见列的支持,以便转换和数据迁移
- 改进获取帮助体验
SSMA v9.0
SSMA for Oracle 的 v9.0 版本包含以下更改:
- 添加对架构级别的 VARRAY 和 TABLE 用户定义类型的支持
- 为用户定义的类型添加对参数、参数和本地声明转换的支持
SSMA v8.24
SSMA for Oracle 的 v8.24 版本包含以下更改:
- 添加对 LISTAGG 函数的支持
- 添加对 Oracle 复合触发器的支持
- 改进 JOIN 子句和 PIPELINED 函数的检测逻辑
- 改进“Save As”语句的命名
SSMA v8.23
SSMA for Oracle 的 v8.23 版本包含以下更改:
- 支持在类型映射设置中将 DATE 类型从 Oracle 映射到 SQL Server DATE 类型
- 支持为 Azure SQL 数据库目标添加的表分区,而且所有表分区都映射到主文件组
- 用于从文件系统添加语句的新选项 “允许来自文件的语句”
- 增强了在控制台模式下运行时的 XML 输出
- 报告中新增了用于发送反馈的“反馈”链接
- 在报告中,增强了可视化体验
SSMA v8.22
SSMA for Oracle 的 v8.22 版本包含以下更改:
- 允许为目标数据库连接指定更多连接字符串选项
- 介绍了评估报告中的摘要图表
- 改进了评估报告中的消息导航
SSMA v8.21
SSMA for Oracle 的 v8.21 版本包含以下更改:
- 修复与提供商名称相关的 OLE DB 连接字符串模式
- 添加缺失的
ssma_oracle.fn_getColEntryByRange
仿真函数 - 在目标数据库的行计数查询中使用
COUNT_BIG
- 添加设置以便在合并操作中仿真 Oracle 的空字符串行为
SSMA v8.20
SSMA for Oracle 的 v8.20 版本包含以下更改:
- 添加对分区表的支持
- 添加 SKIP LOCKED 子句的转换
SSMA v8.19
SSMA for Oracle 的 v8.19 版本包含以下更改:
- 在客户端存储和运行测试用例
- 当用户定义列名称与系统函数匹配时,改进
SELECT
列表中的解析逻辑 - 忽略系统定义列 (
SYS_STS*
) 和索引 (SYS_IL*
) - 修复重新连接到 Oracle 数据库时,对象树中的包消失的问题。
- 修复 32 位 SSMA 包中 Azure SQL 数据库的 CLR 程序集部署问题
SSMA v8.18
SSMA for Oracle 的 v8.18 版本包含以下更改:
- 修复 Oracle 12c 版本 1 (12.1) 的序列加载
SSMA v8.17
SSMA for Oracle 的 v8.17 版本包含以下更改:
- 增加对计算列的支持
- 修复在表达式中使用区域性特定的运算符字符时的分析程序问题
- 更新 HTML 评估报告以使用新式编辑器显示 SQL 文本
SSMA v8.16
SSMA for Oracle 的 v8.16 版本包含以下更改:
- 添加对标识列的支持
- 删除对旧版分析程序的支持
- 修复了对象不从数据库刷新的问题
SSMA v8.15
除了多项辅助功能改进之外,SSMA for Oracle 的 v8.15 版本还包含以下更改:
- 添加设置以便为
%type
和%rowtype
属性使用完整的类型规范 - 改进评估报告以在新式浏览器中使用
- 使用由数据库提供的颁发机构进行 Microsoft Entra/Azure AD 身份验证
- 改进了从文件加载的语句的命名
SSMA v8.14
除了可确保为残障人士提供更多辅助功能的多项改进,SSMA for Oracle 的 v8.14 版本还包含以下更改:
- 在项目元数据中存储完整的源/目标服务器版本(需升级项目)
- 尽可能将 DBA 数据字典用于对象发现
- 修复多个分析程序问题(
PIVOT
/UNPIVOT
、MERGE
、替代引用) - 修复触发器中
INSERTING
/DELETING
/UPDATING
特殊函数的转换
SSMA v8.13
SSMA for Oracle 的 v8.13 版本包含以下更改:
- 修复本地程序中
SQLCODE
和SQLERRM
特殊函数的转换 - 转换过程和函数调用时,请考虑隐式类型强制转换
- 改进源连接字符串的日志记录,帮助排查连接问题
SSMA v8.12
SSMA for Oracle 的 v8.12 版本包含以下更改:
- 支持
INSERT
MERGE
DELETE
/UPDATE
// 语句中的因式分解子句子查询 - 有多路径或循环引用时,
ON DELETE SET NULL
子句的转换消息 - 改进了从动态 SQL 字符串创建的游标转换
- 将 ODP.NET 更新到 v19.8
SSMA v8.11
SSMA for Oracle 的 v8.11 版本包含以下更改:
- 支持
INSERT ... VALUES
语句中的子查询 - 改进了
COMMIT
语句的转换 - 修复
CONNECT BY LEVEL
子句转换中的错误 - 更新了分析程序错误恢复逻辑,以降低其贪婪
- 使用 MSAL.NET 库进行交互式 Microsoft Entra/Azure AD 身份验证
SSMA v8.10
SSMA for Oracle 的 v8.10 版本包含轻微的性能改进,并进行了以下更改:
- 修复索引整理表的测试程序问题
- 修复扩展包中的扩展存储过程名称
SSMA v8.9
SSMA for Oracle 的 v8.9 版本包含以下更改:
- 动态 SQL 字符串文本的转换
LAG
、FIRST_VALUE
和LAST_VALUE
分析函数的转换- 添加对基本
ALTER TRIGGER
/ALTER INDEX
DDL 的支持(启用/禁用等) - 改进了内置函数名称匹配列的转换
- 为可
NULL
列生成经筛选唯一索引 - 改进了 Azure Synapse Analytics 的变量声明转换
- 修复项目名称中的特殊字符问题
SSMA v8.8
SSMA for Oracle 的 v8.8 版本包括:
- SQL Server 对象同步稳定性改进
- 评估和转换过程中的 GUI 性能改进
- 改进了分析
OVER PARTITION
子句的转换 - 新的
LEAD
分析函数的转换 - 新的子查询因式分解子句的转换
- 新的 Azure Synapse Analytics 的
REPLICATE
分布选项 - 全新的 Oracle 语法分析程序,可进一步提高转换性能
SSMA v8.7
SSMA for Oracle 的 v8.7 版本在图形用户界面中进行了小幅度修复和性能改进。
此外,SSMA for Oracle 现在允许基于“高级对象选择”对话框中的有效性状态筛选对象。
重要
使用 SSMA v8.5 及更高版本时,.NET 4.7.2 是安装先决条件。 如果需要安装此版本,可以从此处下载运行时文件。
SSMA v8.6
除了一组旨在提高可用性和性能的针对性修补程序外,SSMA for Oracle 的 v8.6 版本通过添加一个使用户能够在转换后的代码中省略 SSMA 扩展属性的设置进行了增强。
若要使用此设置,请在 SSMA for Oracle 中导航到工具>项目设置>常规>转换,然后在 Misc 下将省略扩展属性设置的值更新为“是”。
而且,SSMA for Oracle 现在提供改进后的 XMLTABLE
子句分析。
重要
使用 SSMA v8.5 及更高版本时,.NET 4.7.2 是安装先决条件。 如果需要安装此版本,可以从此处下载运行时文件。
SSMA v8.5
SSMA for Oracle 的 v8.5 版本进行了增强,支持 Microsoft Entra/Azure AD 身份验证和对 SQL Server 中的 JSON 功能的基本支持,以及一组旨在提高可用性和性能的针对性修补程序。
此外,增强的 SSMA for Oracle 还支持:
- 将用于发现的选定对象数限制限制为 990(Oracle 的
WHERE .. IN (..)
子句限制为 1,000 个项)。 - 从
RAW
到UNIQUEIDENTIFIER
的数据迁移。 - 分析
PARALLEL_ENABLE
子句。
最后,SSMA for Oracle 的 v8.5 版本现在还提供:
- 改进了已转换打包常量的性能。
- 将用于 .NET 的 Oracle 数据提供程序更新到版本 19.5.0。
重要
使用 SSMA v8.5 时,.NET 4.7.2 是安装先决条件。 如果需要安装此版本,可以从此处下载运行时文件。
SSMA v8.4
SSMA for Oracle 的 v8.4 版本通过旨在解决辅助功能问题的针对性修补程序进行增强,并修复了与 SQL Server 2016 及后续版本的最大索引列(允许 32 列而不是 16 列)相关的错误。
此外,此版本的 SSMA for Oracle 添加了将 SYS_REFCURSOR
作为存储过程 OUT
参数进行转换。
重要
使用 SSMA 版本 7.4 到 8.4,.NET 4.5.2 是安装必备组件。
SSMA v8.3
SSMA for Oracle 的 v8.3 版本通过旨在提高质量和转换指标的针对性修补程序进行增强。 此外,此版本的 SSMA for Oracle 提供了以下修复:
- 解决辅助功能问题。
- 添加对 SQL Server 中
hierarchyid
类型的基本支持。 - 解决通过同义词调用函数的未知返回类型问题。
- 将 ODP.NET 更新为 v19.3。
SSMA v8.2
SSMA for Oracle 的 v8.2 版本经过增强,以便:
- 添加对
DBMS_OUTPUT.ENABLE
/DISABLE
的支持。 - 在默认数据迁移查询中为
BINARY_DOUBLE
列删除CAST AS FLOAT
和BINARY_FLOAT
。 - 修复序列刷新(若当前值已更改)。
- 修复与错误解释伪列(如
ROWNUM
等)相关的错误(若存在名称相同的列)。 - 修复在转换具有不明确的未解析标识符的
FOR
循环时发生的崩溃。
此外,此版本还包括一组有针对性的修补程序,旨在提高质量和转换指标,并修复以下项:
- 数据迁移后禁用非聚集索引的问题。
- 在静默安装过程中检测 .NET Framework。
- 下载新版本时发生的间歇性崩溃。
注意
自动更新的已知问题可能会导致从 SSMA v8.1 更新到 v8.2 的失败。 如果遇到此错误,请下载新版本并手动安装。
SSMA v8.1
SSMA for Oracle 的 v8.1 版本通过旨在提高质量和转换指标的针对性修补程序进行增强。
注意
自动更新的已知问题可能会导致从 SSMA v8.0 更新到 v8.1 的失败。 如果遇到此错误,请下载新版本并手动安装。
SSMA v8.0
SSMA for Oracle 的 v8.0 版本通过旨在提高质量和转换指标的针对性修补程序进行增强。 此版本还提供以下新功能:
支持 Azure SQL 托管实例作为目标。 现在你可以创建面向 Azure SQL 托管实例的新项目:
更新后的 SSMA for Oracle 扩展包允许在 Azure SQL 托管实例 上远程安装:
某些功能(包括测试人员和服务器端数据迁移)在面向Azure SQL 托管实例时不受支持。 在此处阅读详细信息。
转换后修复顾问。 你可在此处了解相关详细信息。
初步数据库/架构选择。
连接到源时,现在可以选择感兴趣的数据库/架构。 仅选择计划迁移的架构,可在初始连接期间节省时间,并提高总体 SSMA 性能。
能够使用官方的托管 .NET 驱动程序连接到 Oracle。 OCI 驱动程序不再是在 Oracle 中使用 SQL Server 迁移助手的先决条件。
默认情况下,能够将
ROWID
和UROWID
映射到VARCHAR
。 在uniqueidentifier
的基础上进行了更改,以适应显式ROWID
列的数据迁移。
SSMA v7.10
SSMA for Oracle 的 v7.10 版本包含以下更改:
- 旨在提供更多安全和隐私保护的目标修补程序,以满足全球要求的变化。
- 与分层查询相关的转换改进。
SSMA v7.9
SSMA for Oracle 的 v7.9 版本包含以下更改:
- 旨在改进质量和转换指标的目标修补程序。
- 支持将“Continue”语句从 Oracle 迁移到 SQL Server。
- 支持在 SSMA 命令行中更改数据类型映射和项目首选项。
- 支持使用 SQL Server Integration Services (SSIS) 来迁移数据。 转换架构后,可以使用右键单击上下文菜单选项来创建 SSIS 包。
- SSMA 中的 Azure SQL 数据库连接对话框也已更改,以指定完全限定的服务器名称。 在早期版本的 SSMA 中,必须在项目设置中显式提及 Azure SQL 数据库前缀。
SSMA v7.8
SSMA for Oracle 的 v7.8 版本包含以下更改:
- 支持:
IN
子句的行表达式。- 隐式类型强制转换。
- Azure SQL 数据库的
UID
转换。
- 更改“项目设置”中突出显示的类型映射。
- 用户能够禁用遥测。
SSMA v7.7
SSMA for Oracle 的 v7.7 版本包含以下更改:
- SSMA for Oracle 通过提高质量和转换指标的针对性修补程序进行了增强。
- 根据客户的普遍需求,SSMA for Oracle 的 32 位版本已恢复。 与以前(v7.4 之前)的实现相比,它有两个安装程序包,但它们不能并排安装。 因此,必须根据你拥有的连接组件,选择最合适的版本。 在可能的情况下,最好使用 64 位版本。
- 现在正式支持 SQL Server 2017,以及在 Linux 上支持 Oracle 扩展包(新的远程安装选项)。 扩展包功能在 Linux 上安装时受到限制,因为测试人员和服务器端数据迁移功能不受支持。
- SSMA for Oracle 允许将具体化视图作为常规表进行迁移(可通过“项目设置”-“同步”-“发现具体化视图的后备表”中的设置进行配置)。>>
SSMA v7.6
SSMA for Oracle 的 v7.6 版本经过增强,旨在提高质量和转换指标以及支持 SQL Server 2017(公共预览版)的针对性修补程序。 对 Windows 和 Linux 上的 SQL Server 2017 的支持尚为公共预览版,不应用于生产迁移。
SSMA v7.5
SSMA for Oracle 的 v7.5 版本包含以下更改:
- 采用多项改进进行增强,以确保改善面向残障人士的辅助功能。
- 更新为根据客户反馈改进质量和转换指标,例如改进数据迁移期间的日期和时间浮点数据类型处理。
SSMA v7.4
SSMA for Oracle 的 v7.4 版本包含以下更改:
SSMA for Oracle 现在支持 Azure Synapse Analytics 作为迁移的目标平台。
- 支持 Data Warehouse 存储选项,如下图所示:
- 支持数据分发选项,如下图所示:
“查询超时”选项现在可在源和目标上的架构对象发现期间使用。
根据客户反馈,通过目标修补程序,改进了质量和转换指标。
重要
.NET 4.5.2 是安装 SSMA v7.4 的必备组件。 此外,从 v7.4 开始,SSMA 的 32 位版本即将停用。
SSMA v7.3
SSMA for Oracle 的 v7.3 版本包含以下更改:
- 通过基于客户反馈的针对性修补程序改进了质量和转换指标。
- 通过以下项公开的 SSMA 扩展性框架:
- 将功能导出到 SQL Server Data Tools (SSDT) 项目。
现在可以将架构脚本从 SSMA 导出到 SSDT 项目。 可以使用架构脚本进行其他架构更改并部署数据库。
- SSMA 可用于执行自定义转换的库。
- 现在可以构造全新编码,可处理自定义语法转换和以前未由 SSMA 处理的转换。
- 有关如何构造自定义转换器的说明,请参阅此博客文章:《扩展 SQL Server 迁移助手的转换功能》。
- 从此博客文章下载用于转换的示例项目。
- 现在可以构造全新编码,可处理自定义语法转换和以前未由 SSMA 处理的转换。
- 将功能导出到 SQL Server Data Tools (SSDT) 项目。
SSMA v7.2
SSMA for Oracle 的 v7.2 版本包含以下更改:
- 根据客户反馈,利用目标修补程序改进了质量和转换指标。
- 遥测增强功能,提供更好的数据点来排查客户问题,并且提高 SSMA 的转换率。
SSMA v7.1
SSMA for Oracle 的 v7.1 版本包含以下更改:
- Windows 和 Linux CTP1 上的 SQL Server 2017 现在是支持用于迁移的目标平台。 此功能以技术预览版提供,允许将架构和数据移动到目标 SQL Server 实例。
- SSMA 现在支持自动更新,以便在最新版本的 SSMA 可用后立即下载。
- SSMA 可安装二进制文件现在通过 Windows Installer 包文件 (.msi) 传递。
2016 年 5 月
SSMA for Oracle 的 2016 年 5 月版本包含以下更改:
添加了对 SQL Server 2016 的支持。
添加了 Oracle 闪回存档表到 SQL Server 时态表的转换。
SSMA 不会从 Oracle 闪回数据存档表复制历史数据。 因此,必须在迁移过程中手动复制历史数据。 此外,尽管 SSMA 不会在 SQL Server 元数据资源管理器中显示历史记录表,因为它被视为系统表,但你可以在 SQL Server Management Studio 中查看历史记录表。
SQL Server 2016 不支持多项 Oracle 闪回功能,包括:
- Oracle 闪回事务查询
DBMS_FLASHBACK
包- 闪回事务
- 闪回数据存档
- 闪回表
- 闪回删除
- 闪回数据库
添加了从 Oracle VPD 策略到 SQL Server 策略对象的转换(Oracle 的行级别安全性)。
缩短了 Oracle 的初始加载时间。
改进了分析程序和解析程序。
取消了 .NET 2.0 的安装程序检查。
将扩展包依赖项从 .NET 3.5 更新为 .NET 4.0。
修复了 SSMA 控制台的
save-project
和open-project
命令。修复了 SSMA 控制台的
securepassword
命令。修复了初始加载的对象计数。
修复了 Oracle 的字符数据类型转换。
修复了全局设置中的错误。
2016 年 3 月
SSMA for Oracle 的 2016 年 3 月预览版添加了对以下各项的支持:
- 迁移到 SQL Server 2016。
- 迁移 Oracle 行级别安全性(有一些限制)。
- 将内存表中的 Oracle 迁移到 SQL Server 列存储。
2016 年 1 月
SSMA for Oracle 的 2014 年 1 月维护版本包含以下更改:
- 添加了对聚集索引的支持。
- 修复了缓慢的 Oracle 架构查询 (RFC 5076207)。
- 修复了从控制台连接到 Azure。
- 为 SSMA 增加了视图日志菜单项 (RFC 5706203)。
- 添加了遥测。
2014 年 7 月
SSMA for Oracle 的 2014 年 7 月版本包含以下更改:
- 添加了对 Azure SQL 数据库的支持。
- 将扩展包功能移动到架构以支持 Azure SQL 数据库。
- 添加了对 Oracle 具体化视图的支持。
- 添加了对 SQL Server 2014 内存优化表的支持。
- 包含针对具有 1 万多个对象的数据库进行过测试的性能改进。
- 增加了用于处理大量对象的 UI 改进。
- 添加了已知 LOB 架构的突出显示。
- 包含转换速度改进。
- 添加了对在 UI 中显示对象计数的支持。
- 报告大小减少 25% 以上。
- 改进了未分析构造的错误消息。
2014 年 4 月
SSMA for Oracle 的 2014 年 4 月版本包含以下更改:
- 添加了对 MS SQL Server 2014 的支持。
- 添加了对 Oracle 12 和查询优化的支持。
- 修复了有关转换至 Azure 的错误。
- 修复了有关 IE 10 中不可见报告页的错误。
2012 年 1 月
SSMA for Oracle 的 2012 年 1 月版本添加了对 RowType
和 RecordType
输入参数默认为 NULL
的支持。
2011 年 7 月
SSMA for Oracle 的 2011 年 7 月版本包含以下更改:
- 添加了对将 Oracle 序列转换为 SQL Server 2012 (11.x) 序列生成器的支持。
- 改进了数据迁移期间的错误报告。
- 改进了使用保留字的语句转换。
- 改进了函数中日期值的隐式转换。
2011 年 4 月
SSMA for Oracle 的 2011 年 4 月版本包含以下更改:
- 合并的“SSMA for Oracle”产品,支持 SQL Server 2005 (9.x)、SQL Server 2008 (10.0.x) 和 SQL Server 2012 (11.x)。
- 添加了对连接和迁移到 SQL Server 2012 (11.x) 的支持。
- 增强的客户端数据迁移引擎,支持数据并行迁移。
- 使用
Simple
和Bulk
日志恢复模式改进了数据迁移性能。 - 添加了对由早期版本的 SSMA(v4.0 和 v4.2)创建的项目后向兼容性的支持。
- 添加了使用旧版 SSMA(v4.0 和 v4.2)安装 SSMA for Oracle v5.0 产品并排 (SxS) 的功能。
- 添加了对在 PL/SQL 块中报告用户定义类型(包括子类型、
VARRAY
、NESTED TABLE
、对象表和对象视图),以及它们的使用情况和特别错误消息的支持。
2010 年 7 月
SSMA for Oracle 的 2010 年 7 月版本添加了:
- 支持迁移到 SQL Server 2008 R2。
- 用于命令行执行的新 SSMA 控制台应用程序。
- 支持使用服务器端和客户端数据迁移引擎进行数据迁移。
- 支持数据迁移中的“Custom SELECT”语句。
- 支持从 Oracle 11g R2 进行迁移。
2008 年 6 月
SSMA for Oracle 的 2008 年 6 月版本包含以下更改:
- 添加了对评估报告的改进,包括同义词的其他信息、可分析对象的原始源、面板和 SQL Server 徽标删除以及布局持久性。
- 在对象转换中添加了改进:
- 添加了包
DBMS_LOB
、DBMS_SQL
转换。 - 修订了联接转换。
- 修改集合和记录转换,现在通过每个字段的单独变量发布简单情况下的转换记录。
- 对记录和集合实现的改进。
- 添加了窗口聚合函数。
- 添加了
ROLLUP
/CUBE
子句。 - 对
NEXTVAL
/CURVAL
的改进。 - 添加了
SET
子句、分组集和分组 ID 中的列分组。 - 添加了
MERGE
语句。 - 添加了对新的日期/时间类型以及将记录和集合作为 CLR 数据类型进行转换的支持。
- 添加了包
- 添加了新的测试程序功能。 现在可以使用测试程序将表当做对象进行测试,可改变测试用例中多个可测试对象的调用顺序,用户可以使用记录和集合作为参数与返回值来测试程序和函数,而且添加了依赖项分析器来只检查已使用的表。
2007 年 8 月
SSMA for Oracle 的 2007 年 8 月版本添加了:
- 新的测试程序组件让你可以创建、管理和运行测试用例,以便验证转换后的 SQL 代码。
- 向 SQL 转换器添加了对子类型、集合以及本地模块转换的支持。
- 新的同步功能让你可以在特定对象和 SQL Server 数据库之间进行同步。
- 新的转换选项。
2007 年 4 月
2007 年 4 月发布的 SSMA for Oracle 是首个版本。