

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

# 使用 轉換應用程式中的 SQL 程式碼 AWS SCT
<a name="CHAP_Converting.App.Generic"></a>

您可以使用 AWS SCT 將內嵌的 SQL 程式碼轉換為您的應用程式。一般 AWS SCT 應用程式轉換器會將您的應用程式程式碼視為純文字。它會掃描您的應用程式程式碼，並使用規則表達式擷取 SQL 程式碼。此轉換器支援不同類型的原始程式碼檔案，並使用以任何程式設計語言撰寫的應用程式程式碼。

一般應用程式轉換器具有下列限制。它不會深入探討應用程式程式設計語言專用的應用程式邏輯。此外，一般轉換器不支援來自不同應用程式物件的 SQL 陳述式，例如函數、參數、本機變數等。

若要改善應用程式 SQL 程式碼轉換，請使用語言特定的應用程式 SQL 程式碼轉換器。如需詳細資訊，請參閱[C\$1 應用程式中的 SQL 程式碼](CHAP_Converting.App.Csharp.md)、[Java 中的 SQL 程式碼](CHAP_Converting.App.Java.md)及[Pro\$1C 中的 SQL 程式碼](CHAP_Converting.App.ProC.md)。

## 在 中建立一般應用程式轉換專案 AWS SCT
<a name="CHAP_Converting.App.Project"></a>

在 中 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 整合服務 AWS Glue
Apache Cassandra 到 Amazon DynamoDB

 使用下列程序來建立一般應用程式轉換專案。

**若要建立應用程式轉換專案**

1. 在 中 AWS Schema Conversion Tool，選擇**應用程式功能表上的新增一般****應用程式**。

   會出現 **New application conversion project** (新增應用程式轉換專案) 對話方塊。  
![\[New application conversion project (新增應用程式轉換專案) 對話方塊\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/applications-new-project.png)

1. 新增下列專案資訊。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/CHAP_Converting.App.Generic.html)

1. 選取**不將繫結變數轉換為 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
   ```

1. 選取**保留物件名稱**，以避免將結構描述名稱新增至轉換的物件名稱。此選項僅適用於 Oracle 到 PostgreSQL 的轉換。

   例如，假設您的來源應用程式程式碼包含下列 Oracle 查詢。

   ```
   SELECT * FROM ACCOUNT
   ```

   當您選取**保留物件名稱**時， 會 AWS SCT 轉換此查詢，如下所示。

   ```
   SELECT * FROM account
   ```

   當您清除**保留物件名稱**時， 會將結構描述名稱 AWS SCT 新增至資料表的名稱。轉換結果如下所示。

   ```
   SELECT * FROM schema_name.account
   ```

   如果您的原始程式碼在物件名稱中包含父物件的名稱， 會在轉換後的程式碼中 AWS SCT 使用此格式。在此情況下，請忽略**保留物件名稱**選項，因為 AWS SCT 會在轉換的程式碼中新增父物件的名稱。

1. 選擇 **OK** (確定) 以建立應用程式轉換專案。

   專案視窗會開啟。  
![\[專案視窗\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/applications-project-window.png)

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

您可以開啟現有的應用程式轉換專案，並新增多個應用程式轉換專案。

建立應用程式轉換專案後，專案視窗會自動開啟。您可以關閉應用程式轉換專案視窗，稍後再返回。

**開啟現有的應用程式轉換專案**

1. 在左側面板中，選擇應用程式轉換專案節點，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**管理應用程式**。

**新增額外的應用程式轉換專案**

1. 在左側面板中，選擇應用程式轉換專案節點，然後開啟內容 （按一下滑鼠右鍵） 選單。

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

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

## 在 中分析和轉換 SQL 程式碼 AWS SCT
<a name="CHAP_Converting.App.Convert"></a>

使用下列程序來分析和轉換 中的 SQL 程式碼 AWS Schema Conversion Tool。

**若要分析和轉換您的 SQL 程式碼**

1. 開啟現有的應用程式轉換專案，然後選擇**分析**。

   AWS SCT 會分析您的應用程式程式碼並擷取 SQL 程式碼。 會在剖析的 SQL 指令碼清單中 AWS SCT 顯示擷取的 SQL 程式碼。 ****

1. 對於**剖析的 SQL 指令碼**，請選擇項目以檢閱其擷取的 SQL 程式碼。在**擷取的 SQL 指令碼**窗格中 AWS SCT 顯示所選項目的程式碼。

1. 選擇**轉換**以將 SQL 程式碼轉換為**擷取的 SQL 指令碼**窗格。 會將程式碼 AWS SCT 轉換為與您的目標資料庫相容的格式。

   您可以編輯轉換後的 SQL 程式碼。如需詳細資訊，請參閱[編輯和儲存轉換後的 SQL 程式碼](#CHAP_Converting.App.Edit)。  
![\[要分析的 SQL 程式碼\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/applications-project-analyze.png)

1. 當您建立應用程式轉換評估報告時， 會 AWS SCT 轉換所有擷取的 SQL 程式碼項目。如需詳細資訊，請參閱[建立和使用評估報告](#CHAP_Converting.App.AssessmentReport)。

## 在 中建立和使用 AWS SCT 評估報告 AWS SCT
<a name="CHAP_Converting.App.AssessmentReport"></a>

*應用程式轉換評估報告*提供有關將應用程式 SQL 程式碼轉換為與您目標資料庫相容格式的資訊。報告會詳細說明所有擷取的 SQL 程式碼、所有轉換後的 SQL 程式碼，以及 AWS SCT 無法轉換之 SQL 程式碼的動作項目。

### 建立應用程式轉換評估報告
<a name="CHAP_Converting.App.AssessmentReport.Create"></a>

使用下列程序來建立應用程式轉換評估報告。

**建立應用程式轉換評估報告**

1. 在應用程式轉換專案視窗中，選擇**動作**功能表上的**建立報告**。

   AWS SCT 會建立應用程式轉換評估報告，並在應用程式轉換專案視窗中開啟報告。

1. 檢閱 **Summary** (摘要) 索引標籤。

   摘要****索引標籤如下所示，顯示應用程式評估報告中的摘要資訊。它會顯示已自動轉換的 SQL 程式碼項目，以及無法自動轉換的項目。  
![\[應用程式評估報告 Summary (摘要) 索引標籤\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/applications-summary.png)

1. 選擇 **SQL 擷取動作**。

   檢閱 AWS SCT 無法從原始程式碼擷取的 SQL 程式碼項目清單。

1. 選擇 **SQL 轉換動作**。

   檢閱無法自動轉換的 SQL AWS SCT 程式碼項目清單。使用建議的動作手動轉換 SQL 程式碼。如需如何編輯轉換後 SQL 程式碼的詳細資訊，請參閱 [使用 編輯和儲存轉換後的 SQL 程式碼 AWS SCT](#CHAP_Converting.App.Edit)。

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

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

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

## 使用 編輯和儲存轉換後的 SQL 程式碼 AWS SCT
<a name="CHAP_Converting.App.Edit"></a>

評估報告包含 AWS SCT 無法轉換的 SQL 程式碼項目清單。對於每個項目， 會在 SQL 轉換動作索引標籤上 AWS SCT 建立動作項目。 ****對於這些項目，您可以手動編輯 SQL 程式碼以執行轉換。

使用下列步驟來編輯您的轉換後 SQL 程式碼、套用變更，然後儲存。

**若要編輯、套用變更，並儲存轉換後的 SQL 程式碼**

1. 直接在 **Target SQL script** (目標 SQL 指令碼) 窗格中編輯轉換後 SQL 程式碼。如果未顯示轉換後的程式碼，您可以在窗格中按一下，並開始輸入。

1. 當您完成編輯轉換後的 SQL 程式碼，請選擇 **Apply** (套用)。此時，變更就會儲存在記憶體中，但尚未寫入您的檔案。

1. 選擇 **Save** (儲存) 將變更儲存至您的檔案。

   選擇**儲存**時，您會覆寫原始檔案。在儲存前先複製您的原始檔案，即可擁有一份原始應用程式程式碼的記錄。