

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

# 使用 Pro\$1C 应用程序转换 SQL 代码 AWS Schema Conversion Tool
<a name="CHAP_Converting.App.ProC"></a>

要将 Oracle 转换为 PostgreSQL，可以使用 AWS Schema Conversion Tool AWS SCT() 转换嵌入到 Pro\$1C 应用程序中的 SQL 代码。这个特定的 Pro\$1C 应用程序转换器了解应用程序逻辑。它收集位于不同应用程序对象中的语句，例如函数、参数、局部变量等。

由于这种深入的分析，与通用转换器相比，Pro\$1C 应用程序 SQL 代码转换器的转换结果更好。

## 在中创建 Pro\$1C 应用程序转换项目 AWS SCT
<a name="CHAP_Converting.App.ProC.Create"></a>

您可以仅创建 Pro\$1C 应用程序转换项目，以便将 Oracle 数据库架构转换为 PostgreSQL 数据库架构。请务必在项目中添加包含源 Oracle 架构和目标 PostgreSQL 数据库的映射规则。有关更多信息，请参阅 [在 AWS Schema Conversion Tool 中映射数据类型](CHAP_Mapping.md)。

您可以在单个项目中添加多个应用程序转换 AWS SCT 项目。使用以下过程创建 Pro\$1C 应用程序转换项目。

**创建 Pro\$1C 应用程序转换项目**

1. 创建数据库转换项目，然后添加源 Oracle 数据库。有关更多信息，请参阅[在中启动和管理项目 AWS SCT](CHAP_UserInterface.Project.md)和[将服务器添加到项目中 AWS SCT](CHAP_UserInterface.AddServers.md)。

1. 添加包含源 Oracle 数据库和目标 PostgreSQL 数据库的映射规则。您可以添加目标 PostgreSQL 数据库，也可以在映射规则中使用虚拟的 PostgreSQL 目标数据库平台。有关更多信息，请参阅[在 AWS Schema Conversion Tool 中映射数据类型](CHAP_Mapping.md)和[在 AWS Schema Conversion Tool 中映射到虚拟目标](CHAP_Mapping.VirtualTargets.md)。

1. 在**视图**菜单上，选择**主视图**。

1. 在**应用程序**菜单上，选择**新建 Pro\$1C 应用程序**。

   随即出现**创建 Pro\$1C 应用程序转换项目**对话框。  
![\[“新 Pro*C 应用程序转换项目”对话框\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/images/proc-application-new-project.png)

1. 对于**名称**，输入 Pro\$1C 应用程序转换项目名称。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目，因此如果您添加多个项目的话，请选择一个有意义的名称。

1. 对于**位置**，输入您的应用程序源代码的位置。

1. 在源树状图中，选择应用程序所用的架构。确保此架构是映射规则的一部分。 AWS SCT 以粗体突出显示作为映射规则一部分的架构。

1. 选择**确认**以创建 Pro\$1C 应用程序转换项目。

1. 在左侧面板的**应用程序** 节点中找到您的 Pro\$1C 应用程序转换项目。

## 将你的 Pro\$1C 应用程序 SQL 代码转换成 AWS SCT
<a name="CHAP_Converting.App.ProC.Convert"></a>

将 Pro\$1C 应用程序添加到 AWS SCT 项目后，将该应用程序中的 SQL 代码转换为与目标数据库平台兼容的格式。按照以下过程在 AWS Schema Conversion Tool中分析和转换中嵌入 Pro\$1C 应用程序中的 SQL 代码。

**转换 SQL 代码**

1. 展开左侧面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择要转换的应用程序，然后选择**设置**。

   1. 在**全局标头文件路径**中，输入应用程序项目使用的标头文件路径。

   1. 选择**将所有未解析的主机变量解释为**，以查看转换后的代码中所有未解析的变量。

   1. 选择**使用扩展包中的固定宽度的字符串转换函数**，以便在转换后的 SQL 代码中使用扩展包函数。 AWS SCT 在应用程序项目中包含扩展包文件。

   1. 选择**将匿名 PL/SQL 块转换为独立的 SQL 调用或存储函数**，在目标数据库中为所有匿名 PL/SQL 块创建存储过程。 AWS SCT 然后将这些存储过程的运行包括在转换后的应用程序代码中。

   1. 选择**使用自定义游标流**可改进 Oracle 数据库游标的转换。

1. 在左侧面板中，选择要转换的应用程序，然后打开上下文（右键单击）菜单。

1.  选择 “**转换**”。 AWS SCT 分析您的源代码文件，确定应用程序逻辑，并将代码元数据加载到项目中。此代码元数据包括 Pro\$1C 类、对象、方法、全局变量、接口等。

   在目标数据库面板中， AWS SCT 创建与源应用程序项目类似的文件夹结构。在这里，您可以查看转换后的应用程序代码。  
![\[要分析的 SQL 代码\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/images/proc-applications-project-analyze.png)

1. 保存转换后的应用程序代码。有关更多信息，请参阅 [编辑和保存转换后的 SQL 代码](#CHAP_Converting.App.ProC.Save)。

## 使用编辑和保存转换后的应用程序代码 AWS SCT
<a name="CHAP_Converting.App.ProC.Save"></a>

您可以编辑转换后的 SQL 语句，并使用将编辑后的代码嵌入 AWS SCT 到转换后的 Pro\$1C 应用程序代码中。您可使用以下过程编辑转换后的 SQL 代码。

**编辑转换后的 SQL 代码**

1. 展开左侧面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择要转换的应用程序，打开上下文（右键单击）菜单，然后选择**转换**。

1. 在**视图**菜单上，选择**评估报告视图**。

1. 选择**将语句保存为 CSV**，将从 Pro\$1C 应用程序中提取的 SQL 代码保存为 CSV 文件。

1. 输入 CSV 文件的名称以保存提取的 SQL 代码，然后选择**保存**。

1. 编辑提取的 SQL 代码。

1. 在**视图**菜单上，选择**主视图**。

1. 展开目标数据库面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择转换后的应用程序，打开上下文（右键单击）菜单，然后选择**从 CSV 导入语句**。

1. 选择**是**，然后选择包含已编辑的 SQL 代码的文件，然后选择**打开**。

AWS SCT 将转换后的 SQL 语句分成多个部分，然后将其放入源应用程序代码的相应对象中。使用以下过程保存转换后的应用程序代码。

**保存转换后的应用程序代码**

1. 展开目标数据库面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择转换后的应用程序，然后选择**保存**。

1. 输入保存转换后的应用程序代码的文件夹路径，然后选择**选择文件夹**。

## 在中管理 Pro\$1C 应用程序转换项目 AWS SCT
<a name="CHAP_Converting.App.ProC.Manage"></a>

您可以添加多个 Pro\$1C 应用程序转换项目、更新项目中的应用程序代码或从 AWS SCT 项目中移除 Pro\$1C 转换项目。 AWS SCT 

**添加其他 Pro\$1C 应用程序转换项目**

1. 展开左侧面板中的**应用程序**节点。

1. 选择 **Pro\$1C** 节点，然后打开上下文（右键单击）菜单。

1. 选择 **New application**（新建应用程序）。

1. 输入创建新的 Pro\$1C 应用程序转换项目所需的信息。有关更多信息，请参阅 [创建 Pro\$1C 应用程序转换项目](#CHAP_Converting.App.ProC.Create)。

修改源应用程序代码后，将其上传到 AWS SCT 项目中。

**上传更新的应用程序代码**

1. 展开左侧面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择要更新的应用程序，然后打开上下文（右键单击）菜单。

1. 选择**刷新**，然后选择**是**。

   AWS SCT 从源文件上传您的应用程序代码并删除转换结果。要保留您在中进行的代码更改 AWS SCT 和转换结果，请创建一个新的 Pro\$1C 转换项目。

**移除 Pro\$1C 应用程序转换项目**

1. 展开左侧面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择要删除的应用程序，然后打开上下文（右键单击）菜单。

1. 选择**删除**，然后选择**确定**。

## 在中创建 Pro\$1C 应用程序转换评估报告 AWS SCT
<a name="CHAP_Converting.App.ProC.AssessmentReport"></a>

*Pro\$1C 应用程序转换评估报告*提供了有关将 Pro\$1C 应用程序中嵌入的 SQL 代码转换为与目标数据库兼容的格式的信息。评估报告提供了所有 SQL 执行点和所有源代码文件转换的详细信息。评估报告还包括针对 AWS SCT 无法转换的 SQL 代码的操作项目。

使用以下过程创建 Pro\$1C 应用程序转换评估报告。

**创建 Pro\$1C 应用程序转换评估报告**

1. 展开左侧面板中**应用程序**下的 **Pro\$1C** 节点。

1. 选择要转换的应用程序，然后打开上下文（右键单击）菜单。

1. 选择**转换**。

1. 在**视图**菜单上，选择**评估报告视图**。

1. 查看 **Summary** 选项卡。

   如下所示的**摘要**选项卡显示了 Pro\$1C 应用程序评估报告中的执行摘要信息。它显示所有 SQL 执行点和所有源代码文件的转换结果。  
![\[“Pro*C 应用程序评估报告摘要”选项卡\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/images/proc-applications-summary.png)

1. 选择**将语句保存到 CSV**，将从 Pro\$1C 应用程序中提取的 SQL 代码保存为逗号分隔值（CSV）文件。

1. （可选）将报告的本地副本另存为 PDF 文件或逗号分隔值（CSV）文件。
   + 选择右上角的**保存为 PDF**，将报告另存为 PDF 文件。

      PDF 文件包含应用程序转换的执行摘要、操作项和建议。
   + 选择右上角的**保存为 CSV**，将报告另存为 CSV 文件。

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