使用 AWS SCT 转换应用程序中的 SQL 代码 - AWS Schema Conversion Tool

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS SCT 转换应用程序中的 SQL 代码

您可以使用 AWS SCT 转换嵌入到应用程序中的 SQL 代码。通用 AWS SCT 应用程序转换器将您的应用程序代码视为纯文本。它会扫描您的应用程序代码并使用正则表达式提取 SQL 代码。该转换器支持不同类型的源代码文件,并且可以处理用任何编程语言编写的应用程序代码。

通用应用程序转换器具有以下限制。它不会深入探讨特定于应用程序编程语言的应用程序逻辑。此外,通用转换器不支持来自不同应用程序对象(例如函数、参数、局部变量等)的 SQL 语句。

要改进应用程序 SQL 代码转换,请使用特定于语言的应用程序 SQL 代码转换器。有关更多信息,请参阅转换 C# 应用程序中的 SQL 代码转换 Java 应用程序中的 SQL 代码转换 Pro*C 应用程序中的 SQL 代码

在 AWS SCT 中创建通用应用程序转换项目

在 AWS Schema Conversion Tool 中,应用程序转换项目是数据库架构转换项目的子级。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目。

注意

AWS SCT 不支持在以下源和目标之间进行转换:

  • Oracle 到 Oracle

  • PostgreSQL 到 PostgreSQL 或 Aurora PostgreSQL

  • MySQL 到 MySQL

  • SQL Server 到 SQL Server

  • Amazon Redshift 到 Amazon Redshift

  • SQL Server 到 Babelfish

  • SQL Server Integration Services 到 AWS Glue

  • Apache Cassandra 到 Amazon DynamoDB

使用以下过程创建通用应用程序转换项目。

创建应用程序转换项目
  1. 在 AWS Schema Conversion Tool 中,在应用程序菜单上选择新建通用应用程序

    随即出现 New application conversion project 对话框。

    “New application conversion project (新应用程序转换项目)”对话框
  2. 添加以下项目信息。

    对于此参数 请执行该操作
    名称

    输入您的应用程序转换项目的名称。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目,因此如果您在事后添加更多项目的话,请选择一个有意义的名称。

    位置

    输入您的应用程序源代码的位置。

    语言

    选择以下选项之一:

    • Java

    • C++

    • C#

    • 任何

    目标参数样式

    选择转换后的代码中用于绑定变量的语法。不同的数据库平台对绑定变量使用不同的语法。请选择以下任一选项:

    • Same as in source

    • Positional (?)

    • Indexed (:1)

    • Indexed ($1)

    • Named (@name)

    • Named (:name)

    • Named (&name)

    • Named ($name)

    • Named (#name)

    • Named (!name!)

    选择源数据库架构

    在源树状图中,选择应用程序所用的架构。确保此架构是映射规则的一部分。

  3. 选择不要将绑定变量转换为 SQL 类型,以避免将绑定变量类型转换为 SQL 类型。该选项仅适用于 Oracle 到 PostgreSQL 的转换。

    例如,您的源应用程序代码包括以下 Oracle 查询:

    SELECT * FROM ACCOUNT WHERE id = ?

    如果选择不要将绑定变量转换为 SQL 类型,则 AWS SCT 会按如下所示转换此查询。

    SELECT * FROM account WHERE id = ?

    清除不要将绑定变量转换为 SQL 类型后,AWS SCT 会将绑定变量类型更改为 NUMERIC 数据类型。转换结果如下所示。

    SELECT * FROM account WHERE id = (?)::NUMERIC
  4. 选择保留对象名称,以避免将架构名称添加到已转换对象的名称中。该选项仅适用于 Oracle 到 PostgreSQL 的转换。

    例如,假定您的源应用程序代码包含以下 Oracle 查询。

    SELECT * FROM ACCOUNT

    当您选择保留对象名称时,AWS SCT 将转换此查询,如下所示。

    SELECT * FROM account

    清除保留对象名称后,AWS SCT 会将架构名称添加到表的名称中。转换结果如下所示。

    SELECT * FROM schema_name.account

    如果您的源代码在对象的名称中包含父对象的名称,则 AWS SCT 在转换后的代码中使用此格式。在这种情况下,请忽略保留对象名称选项,因为 AWS SCT 会在转换后的代码中添加父对象的名称。

  5. 选择 OK 以创建应用程序转换项目。

    随即打开项目窗口。

    项目窗口

在 AWS SCT 中管理应用程序转换项目

您可以打开现有的应用程序转换项目并添加多个应用程序转换项目。

在您创建应用程序转换项目时,项目窗口会自动打开。您可以关闭应用程序转换项目窗口,稍后再回来。

打开现有应用程序转换项目
  1. 在左侧面板中,选择应用程序转换项目节点,然后打开上下文(右键单击)菜单。

  2. 选择管理应用程序

添加其他应用程序转换项目
  1. 在左侧面板中,选择应用程序转换项目节点,然后打开上下文(右键单击)菜单。

  2. 选择 New application(新建应用程序)。

  3. 输入创建新的应用程序转换项目所需的信息。有关更多信息,请参阅创建通用应用程序转换项目

在 AWS SCT 中分析和转换 SQL 代码

按照以下过程在 AWS Schema Conversion Tool 中分析和转换 SQL 代码。

分析和转换您的 SQL 代码
  1. 打开现有的应用程序转换项目,然后选择分析

    AWS SCT 分析应用程序代码并提取 SQL 代码。AWS SCT 在已解析的 SQL 脚本列表中显示提取的 SQL 代码。

  2. 对于已解析的 SQL 脚本,请选择一个项目来查看其提取的 SQL 代码。AWS SCT 在提取的 SQL 脚本窗格中显示所选项目的代码。

  3. 选择转换,在提取的 SQL 脚本窗格中转换 SQL 代码。AWS SCT 将代码转换为与目标数据库兼容的格式。

    您可以编辑转换后的 SQL 代码。有关更多信息,请参阅编辑和保存转换后的 SQL 代码

    要分析的 SQL 代码
  4. 创建应用程序转换评估报告时,AWS SCT 会转换所有提取的 SQL 代码项。有关更多信息,请参阅创建和使用评估报告

在 AWS SCT 中创建和使用 AWS SCT 评估报告。

应用程序转换评估报告提供了有关将应用程序 SQL 代码转换为与目标数据库兼容的格式的信息。该报告详细列出了所有提取的 SQL 代码、所有经过转换的 SQL 代码以及无法转换的 SQL 的操作项。

创建应用程序转换评估报告

使用以下过程创建应用程序转换评估报告。

创建应用程序转换评估报告
  1. 在应用程序转换项目窗口中,在操作 菜单上选择创建报告

    AWS SCT 创建应用程序转换评估报告并在应用程序转换项目窗口中将其打开。

  2. 查看 Summary 选项卡。

    如下所示的摘要选项卡显示了应用程序评估报告中的摘要信息。它显示了已自动转换的 SQL 代码项目及未自动转换的项目。

    “Application Assessment Report Summary (应用程序评估报告摘要)”选项卡
  3. 选择 SQL 提取操作

    查看 AWS SCT 无法从源代码中提取的 SQL 代码项列表。

  4. 选择 SQL 转换操作

    查看 AWS SCT 无法自动转换的 SQL 代码项列表。使用推荐的操作手动转换 SQL 代码。有关如何编辑转换的 SQL 代码的信息,请参阅 使用 AWS SCT 编辑和保存转换后的 SQL 代码

  5. (可选)将报告的本地副本另存为 PDF 文件或逗号分隔值(CSV)文件:

    • 选择右上角的保存为 PDF,将报告另存为 PDF 文件。

      PDF 文件包含应用程序转换的执行摘要、操作项和建议。

    • 选择右上角的保存为 CSV,将报告另存为 CSV 文件。

      CSV 文件包含操作项、推荐的操作以及转换 SQL 代码所需的估计人工操作的复杂性。

使用 AWS SCT 编辑和保存转换后的 SQL 代码

评估报告包含 AWS SCT 无法转换的 SQL 代码项的列表。对于每个项目,AWS SCT 在 SQL 转换操作选项卡上创建一个操作项。对于这些项目,您可以手动编辑 SQL 代码以执行转换。

按照以下过程编辑转换后的 SQL 代码、应用更改,然后进行保存。

编辑、应用更改并保存转换后的 SQL 代码
  1. 直接在 Target SQL script 窗格中编辑转换后的 SQL 代码。如果未显示转换后的代码,您可以单击窗格并开始键入。

  2. 编辑完转换后的 SQL 代码,请选择 Apply。此时,更改便会保存在内存中,但尚未写入您的文件。

  3. 选择 Save 将更改保存到文件中。

    当您选择保存时,会覆盖您的原始文件。在保存之前复制您的原始文件,以便记录原始应用程序代码。