

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 轉換 C\$1\$1 應用程式中的 SQL 程式碼 AWS Schema Conversion Tool
<a name="CHAP_Converting.App.Cplusplus"></a>

對於 Oracle 轉換為 PostgreSQL，您可以使用 AWS SCT 將內嵌的 SQL 程式碼轉換為 C\$1\$1 應用程式。這個特定的 C\$1\$1 應用程式轉換器了解應用程式邏輯。它會收集位於不同應用程式物件中的陳述式，例如函數、參數、本機變數等。

由於此深度分析，C\$1\$1 應用程式 SQL 程式碼轉換器提供比一般轉換器更好的轉換結果。

## 在 中建立 C\$1\$1 應用程式轉換專案 AWS SCT
<a name="CHAP_Converting.App.Cplusplus.Create"></a>

您只能建立將 Oracle 資料庫結構描述轉換為 PostgreSQL 資料庫結構描述的 C\$1\$1 應用程式轉換專案。請務必在專案中新增映射規則，其中包含來源 Oracle 結構描述和目標 PostgreSQL 資料庫。如需詳細資訊，請參閱[中的映射資料類型 AWS Schema Conversion Tool](CHAP_Mapping.md)。

您可以在單一 AWS SCT 專案中新增多個應用程式轉換專案。

**建立 C\$1\$1 應用程式轉換專案**

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. 在**應用程式**功能表中，選擇**新的 C\$1\$1 應用程式**。

   隨即出現**建立 C\$1\$1 應用程式轉換專案**對話方塊。  
![\[新的 C++ 應用程式轉換專案對話方塊\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/cplusplus-application-new-project.png)

1. 在**名稱**中，輸入 C\$1\$1 應用程式轉換專案的名稱。由於每個資料庫結構描述轉換專案可以有一或多個子應用程式轉換專案，因此如果您新增多個專案，請選擇有意義的名稱。

1. 針對**位置**，輸入應用程式的來源碼位置。

1. 在來源樹狀目錄中，選擇應用程式使用的結構描述。請確定此結構描述是映射規則的一部分。 會以粗體 AWS SCT 強調映射規則一部分的結構描述。

1. 選擇**確定**以建立 C\$1\$1 應用程式轉換專案。

1. 在左側面板的應用程式節點中尋找 C\$1\$1 **應用程式**轉換專案。

## 在 中轉換 C\$1\$1 應用程式 SQL 程式碼 AWS SCT
<a name="CHAP_Converting.App.Cplusplus.Convert"></a>

將 C\$1\$1 應用程式新增至 AWS SCT 專案後，請將此應用程式中的 SQL 程式碼轉換為與您的目標資料庫平台相容的格式。使用下列程序來分析和轉換內嵌於 C\$1\$1 應用程式的 SQL 程式碼 AWS SCT。

**轉換 SQL 程式碼**

1. 在左側面板中的**應用程式**下展開 **C\$1\$1** 節點，然後選擇要轉換的應用程式。

1. 在**來源 Oracle 應用程式專案**中，選擇**設定**。檢閱和編輯所選 C\$1\$1 應用程式的轉換設定。您也可以為您新增至 AWS SCT 專案的所有 C\$1\$1 應用程式指定轉換設定。如需詳細資訊，請參閱[管理 C\$1\$1 應用程式轉換專案](#CHAP_Converting.App.Cplusplus.Manage)。

1. 針對**編譯器類型**，選擇您用於 C\$1\$1 應用程式的原始程式碼的編譯器。 AWS SCT 支援下列 C\$1\$1 編譯器：**Microsoft Visual C\$1\$1**、**GCC、GNU 編譯器集合**和 **Clang**。預設選項為 **Microsoft Visual C\$1\$1**。

1. 對於**使用者定義的巨集**，輸入包含來自 C\$1\$1 專案之使用者定義巨集的檔案路徑。請確定此檔案具有下列結構：`#define name value`。在上述範例中， `value` 是選用參數。此選用參數的預設值為 `1`。

   若要建立此檔案，請在 Microsoft Visual Studio 中開啟您的專案，然後選擇**專案**、**屬性**、**C/C\$1\$1** 和**預處理器**。對於**預處理器定義**，選擇**編輯**並將名稱和值複製到新的文字檔案。然後，針對 檔案中的每個字串，新增下列字首：`#define `。

1. 對於**外部包含目錄**，輸入資料夾的路徑，其中包含您在 C\$1\$1 專案中使用的外部程式庫。

1. 在左側窗格中，選擇要轉換的應用程式，然後開啟內容 （按一下滑鼠右鍵） 選單。

1.  選擇 **Convert**. AWS SCT analyzes 您的原始程式碼檔案、判斷應用程式邏輯，並將程式碼中繼資料載入專案。此程式碼中繼資料包括 C\$1\$1 類別、物件、方法、全域變數、介面等。

   在目標資料庫面板中， 會 AWS SCT 建立與來源應用程式專案類似的資料夾結構。您可以在這裡檢閱轉換後的應用程式程式碼，如下所示。  
![\[要分析的 SQL 程式碼\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/cplusplus-applications-project-analyze.png)

1. 儲存轉換後的應用程式程式碼。如需詳細資訊，請參閱[儲存轉換後的應用程式程式碼](#CHAP_Converting.App.Cplusplus.Save)。

## 使用 儲存轉換後的應用程式碼 AWS SCT
<a name="CHAP_Converting.App.Cplusplus.Save"></a>

使用下列程序來儲存轉換後的應用程式程式碼。

**儲存轉換後的應用程式程式碼**

1. 在目標資料庫面板中的**應用程式**下展開 **C\$1\$1** 節點。

1. 選擇轉換後的應用程式，然後選擇**儲存**。

1. 輸入資料夾的路徑以儲存轉換後的應用程式碼，然後選擇**選取資料夾**。

## 在 中管理 C\$1\$1 應用程式轉換專案 AWS SCT
<a name="CHAP_Converting.App.Cplusplus.Manage"></a>

您可以新增多個 C\$1\$1 應用程式轉換專案、編輯轉換設定、更新 C\$1\$1 應用程式程式碼，或從 AWS SCT 專案中移除 C\$1\$1 轉換專案。

**新增額外的 C\$1\$1 應用程式轉換專案**

1. 展開左側面板中的**應用程式**節點。

1. 選擇 **C\$1\$1** 節點，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇 **New application** (新增應用程式)。

1. 輸入建立新 C\$1\$1 應用程式轉換專案所需的資訊。如需詳細資訊，請參閱[建立 C\$1\$1 應用程式轉換專案](#CHAP_Converting.App.Cplusplus.Create)。

您可以為 AWS SCT 專案中的所有 C\$1\$1 應用程式轉換專案指定轉換設定。

**編輯所有 C\$1\$1 應用程式的轉換設定**

1. 在**設定**功能表中，選擇**專案設定**，然後選擇**應用程式轉換**。

1. 針對**編譯器類型**，選擇您用於 C\$1\$1 應用程式的原始程式碼的編譯器。 AWS SCT 支援下列 C\$1\$1 編譯器：**Microsoft Visual C\$1\$1**、**GCC、GNU 編譯器集合**和 **Clang **。預設選項為 **Microsoft Visual C\$1\$1**。

1. 對於**使用者定義的巨集**，輸入包含來自 C\$1\$1 專案之使用者定義巨集的檔案路徑。請確定此檔案具有下列結構：`#define name value`。在上述範例中， `value` 是選用參數。此選用參數的預設值為 `1`。

   若要建立此檔案，請在 Microsoft Visual Studio 中開啟您的專案，然後選擇**專案**、**屬性**、**C/C\$1\$1** 和**預處理器**。對於**預處理器定義**，選擇**編輯**並將名稱和值複製到新的文字檔案。然後，針對 檔案中的每個字串，新增下列字首：`#define `。

1. 對於**外部包含目錄**，輸入資料夾的路徑，其中包含您在 C\$1\$1 專案中使用的外部程式庫。

1. 選擇**確定**以儲存專案設定並關閉視窗。

或者，您可以為每個 C\$1\$1 應用程式轉換專案指定轉換設定。如需詳細資訊，請參閱[轉換 C\$1\$1 應用程式 SQL 程式碼](#CHAP_Converting.App.Cplusplus.Convert)。

在您變更來源應用程式程式碼之後，請將其上傳至 AWS SCT 專案。

**上傳更新的應用程式程式碼**

1. 在左側面板****的應用程式下展開 **C\$1\$1** 節點。

1. 選擇要更新的應用程式，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**重新整理**，然後選擇**是**。

   AWS SCT 從來源檔案上傳您的應用程式程式碼，並移除轉換結果。若要保留您在 中所做的程式碼變更 AWS SCT 和轉換結果，請建立新的 C\$1\$1 轉換專案。

   此外， AWS SCT 移除您為所選應用程式指定的應用程式轉換設定。在您上傳更新的應用程式程式碼之後， 會從專案設定 AWS SCT 套用預設值。

**移除 C\$1\$1 應用程式轉換專案**

1. 在左側面板****的應用程式下展開 **C\$1\$1** 節點。

1. 選擇要移除的應用程式，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**刪除**，然後選擇**確定**。

## 在 中建立 C\$1\$1 應用程式轉換評估報告 AWS SCT
<a name="CHAP_Converting.App.Cplusplus.AssessmentReport"></a>

*C\$1\$1 應用程式轉換評估報告*提供有關將 C\$1\$1 應用程式中內嵌的 SQL 程式碼轉換為與目標資料庫相容格式的資訊。評估報告提供所有 SQL 執行點和所有原始程式碼檔案的轉換詳細資訊。評估報告也包含 AWS SCT 無法轉換之 SQL 程式碼的動作項目。

**建立 C\$1\$1 應用程式轉換評估報告**

1. 在左側面板中的**應用程式**下展開 **C\$1\$1** 節點。

1. 選擇要轉換的應用程式，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**轉換**。

1. 在**檢視**功能表上，選擇**評估報告檢視**。

1. 檢視**摘要**索引標籤。

   **摘要**索引標籤會顯示來自 C\$1\$1 應用程式評估報告的執行摘要資訊。它會顯示所有 SQL 執行點和所有原始程式碼檔案的轉換結果。

1. 選擇將**陳述式儲存至 JSON**，將從 Java 應用程式擷取的 SQL 程式碼儲存為 JSON 檔案。

1. （選用） 將報告的本機副本儲存為 PDF 檔案或逗號分隔值 (CSV) 檔案：
   + 選擇右上角**的儲存至 PDF**，將報告儲存為 PDF 檔案。

      PDF 檔案包含執行摘要、動作項目和應用程式轉換的建議。
   + 選擇右上角**的儲存至 CSV**，將報告儲存為 CSV 檔案。

     CSV 檔案包含動作項目、建議的動作，以及轉換 SQL 程式碼所需的預估手動工作複雜度。