转换 SAP ASE 数据库对象(SybaseToSQL)

连接到 SAP Adaptive Server Enterprise(ASE),连接到 SQL Server 或 Azure SQL 并设置项目和数据映射选项后,可以将 SAP Adaptive Server Enterprise (ASE) 数据库对象转换为 SQL Server 或 Azure SQL 数据库对象。

转换过程

转换数据库对象从 ASE 获取对象定义,将其转换为类似的 SQL Server 或 SQL Azure 对象,然后将此信息加载到 SSMA 元数据中。 它不会将信息加载到 SQL Server 或 Azure SQL 实例中。 然后,可以使用 SQL Server 或 Azure SQL 元数据资源管理器查看对象及其属性。

在转换过程中,SSMA 会将输出消息输出到“输出”窗格,并将错误消息输出到 “错误列表 ”窗格。 使用输出和错误信息来确定是必须修改 ASE 数据库还是转换过程以获取所需的转换结果。

设置转换选项

在转换对象之前,请查看“ 项目设置” 对话框中的项目转换选项。 使用此对话框可以设置 SSMA 如何转换函数和全局变量。 有关详细信息,请参阅项目设置(转换)(SybaseToSQL)。

转换 ASE 数据库对象

若要转换 ASE 数据库对象,请先选择要转换的对象,然后让 SSMA 执行转换。 若要在转换期间查看输出消息,请在 “视图 ”菜单上选择“ 输出”。

将 ASE 对象转换为 SQL Server 或 SQL Azure 语法

  1. 在 Sybase 元数据资源管理器中,展开 ASE 服务器,然后展开 “数据库”。

  2. 选择要转换的对象:

    • 若要转换所有数据库,请选中 “数据库”旁边的复选框。

    • 若要转换或省略数据库,请选中或清除数据库名称旁边的复选框。

    • 若要转换或省略单个架构,请展开数据库,展开 “架构”,然后选择或清除架构旁边的复选框。

    • 若要转换或省略对象类别,请展开架构,然后选择或清除类别旁边的复选框。

    • 若要转换或省略单个对象,请展开类别文件夹,然后选择或清除对象旁边的复选框。

  3. 若要转换所有选定的对象,请右键单击 “数据库”,然后选择“ 转换架构”。

    还可以通过右键单击该对象或其包含文件夹,然后选择 “转换架构”来转换单个对象或对象的类别。

注释

某些 SAP ASE 系统函数的行为与等效的 SQL Server 系统函数不完全匹配。 为了模拟 SAP ASE 行为,SSMA 会在转换后的 SQL Server 数据库中根据名为“s2ss”的架构生成用户定义的函数。 根据项目设置,某些 SQL Server 系统函数将替换为这些模拟函数。 SSMA 创建以下用户定义的函数:

char_length_nvarchar
char_length_varchar
charindex_nvarchar
charindex_varchar
hextoint
index_colorder

inttohex
ssma_current_time
ssma_datediff
ssma_datepart
substring_nvarchar
substring_varbinary

substring_varchar
to_unichar
uhighsurr
ulowsurr

Azure SQL 中不支持的对象

在转换为本地 SQL Server 期间,SSMA 将以下 T-SQL 关键字用于 SAP ASE,但 SQL Azure T-SQL 语法不支持这些关键字:

CHECKPOINT
CREATE/ALTER/DROP 默认值
创建/删除规则
DBCC TRACEOFF
DBCC TRACEON

授予/撤销/拒绝全部
KILL
READTEXT
SELECT INTO
设置偏移量

SETUSER
SHUTDOWN
WRITETEXT

查看转换问题

某些 SAP ASE 对象可能无法转换。 可以通过查看摘要转换报告来确定转换成功率。

查看摘要报表

  1. 在 Sybase 元数据资源管理器中,选择 “数据库”。

  2. 在右窗格中,选择“ 报表 ”选项卡。

    此报表显示已评估或转换的所有数据库对象的摘要评估报告。 还可以查看各个对象的摘要报表:

    • 若要查看单个数据库的报表,请在 Sybase 元数据资源管理器中选择该数据库。

    • 若要查看单个数据库对象的报表,请在 Sybase 元数据资源管理器中选择该对象。 具有转换问题的对象有红色错误图标。

对于转换失败的对象,可以查看导致转换失败的语法。

查看单个转换问题

  1. 在 Sybase 元数据资源管理器中,展开 数据库

  2. 展开显示红色错误图标的数据库。

  3. 展开 “架构” 文件夹,然后展开显示红色错误图标的架构。

  4. 在架构视图中,展开带有红色错误图标的文件夹。

  5. 选择具有红色错误图标的对象。

  6. 在右窗格中,选择“ 报表 ”选项卡。

  7. 在“ 报表 ”选项卡顶部是一个下拉列表。 如果列表显示 统计信息,请将所选内容更改为 “源”。

    SSMA 将显示源代码和代码正上方的多个按钮。

  8. 选择 “下一个问题”,红色错误图标,箭头指向右侧。

    SSMA for SAP ASE 将突出显示它在当前对象中找到的第一个有问题的源代码。

对于无法转换的每个项目,您需要确定要对该对象执行的操作:

  • 可以在 SQL 选项卡上编辑过程和触发器的源代码。

  • 可以更改 SAP ASE 对象以删除或修改有问题的代码。 若要将更新的代码加载到 SSMA 中,必须更新元数据。 有关详细信息,请参阅“连接到 SAP ASE”(SybaseToSQL)。

  • 您可以从迁移中排除对象。 在 SQL Server 或 Azure SQL 元数据资源管理器和 Sybase 元数据资源管理器中,清除项旁边的复选框,然后将对象加载到 SQL Server 或 Azure SQL 中,并从 SAP ASE 迁移数据。

后续步骤

迁移过程中的下一步是 将转换的数据库对象加载到 SQL Server/SQL Azure (SybaseToSQL) 中。

另请参阅

将 SAP ASE 数据库迁移到 SQL Server - Azure SQL 数据库 (SybaseToSQL)