本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 SQL Server 到 PostgreSQL 的轉換設定
DMS 結構描述轉換中的 SQL Server 到 PostgreSQL 轉換設定包括下列項目:
-
若要使用生成式 AI 轉換適用的資料庫物件,請啟用生成式 AI 設定。使用生成式 AI 成功轉換的物件將使用動作項目 7744 明確識別,該項目陳述:「此轉換使用根據資料中的模式產生預測的機器學習模型。」 如需詳細資訊,請參閱使用生成式 AI 轉換資料庫物件。
-
在 SQL Server 中,您可以在不同的資料表中使用相同的索引名稱。但是在 PostgreSQL 中,您在結構描述中使用的所有索引名稱都必須是唯一名稱。若要確保 DMS 結構描述轉換為您的所有索引產生唯一名稱,請選取針對索引產生唯一的名稱。
-
PostgreSQL 10 和更舊版本不支援程序。如果您不熟悉在 PostgreSQL 中使用程序, AWS DMS 可以將 SQL Server 程序轉換為 PostgreSQL 函數。若要這樣做,請選取將程序轉換為函數。
-
您的來源 SQL Server 資料庫可以將
EXEC
的輸出儲存在資料表中。DMS 結構描述轉換會建立暫存資料表和其他程序來模擬此功能。若要使用此模擬,請選取建立其他常式來處理開放資料集。 -
您可以定義轉換後程式碼中要用於結構描述名稱的範本。針對結構描述名稱,選擇以下其中一個選項:
-
DB – 使用 SQL 伺服器資料庫名稱作為 PostgreSQL 中的結構描述名稱。
-
SCHEMA – 使用 SQL 伺服器結構描述名稱作為 PostgreSQL 中的結構描述名稱。
-
DB_SCHEMA – 使用 SQL 伺服器資料庫和結構描述名稱的組合,作為 PostgreSQL 中的結構描述名稱。
-
-
您可以在來源運算元的名稱中保留字母大小寫。若要避免將運算元名稱轉換為小寫,請選取避免轉換為小寫以進行區分大小寫的操作。只有在來源資料庫中啟用區分大小寫功能時,此選項才適用。
-
您可以保留來源資料庫中的參數名稱。DMS 結構描述轉換可以在轉換後程式碼的參數名稱中加上雙引號。若要這樣做,請選取保留原始參數名稱。
-
您可以保留來源資料庫的一段常式參數。DMS 結構描述轉換會建立網域,並使用網域來指定一段常式參數。若要這樣做,請選取保留參數長度。
-
若要將不支援的內建物件轉換為 stub 物件,請啟用將不支援的內建物件轉換為 stub 物件設定:
-
啟用時,DMS SC 會將不支援的內建物件取代為目標資料庫中對應的 stub 物件。此功能會轉換通常由遷移問題 7811 或 7904 封閉的程式碼區段。它會根據程序
PROCEDURE
、VIEW
檢視或資料表的來源內建物件類型建立 stub 物件。將來源資料庫物件與呼叫不支援的物件進行轉換會導致呼叫 stub 物件和遷移問題 7822。
您可以透過在個別結構描述選項中啟用建立 stub 物件,選擇在個別結構描述中建立 stub 物件。選取時,stub 物件會在目標資料庫中名為 的特殊結構描述
aws_sqlserver_stub
中建立。如果未選取,則會在與呼叫物件相同的結構描述中建立它們。 -
Stub 常式是根據原始內建的完整名稱來命名。對於 stub 檢視,命名慣例包含系統結構描述名稱
system_schema_name$builtin_view_name
。在重新轉換期間,DMS SC 會檢查目標資料庫中現有的 stub 常式。如果具有相同名稱和輸入參數的常式已存在,則不會覆寫它。
轉換後,視需要檢閱和實作 stub 常式的自訂程式碼。
-
-
CITEXT
DMS 結構描述轉換中所有字串資料類型設定的資料類型包括下列項目:-
若要在從 SQL Server 轉換為 PostgreSQL 時使用不區分大小寫的字串操作的
CITEXT
資料類型,請為所有字串資料類型設定啟用使用 CITEXT。此選項有助於在從不區分大小寫的 SQL Server 遷移到區分大小寫的 PostgreSQL 環境時維持一致的行為。 -
啟用時,DMS SC 會將來源 SQL Server 資料庫的所有相關字串資料類型轉換為 PostgreSQL
CITEXT
中的 。這消除了在條件中對明確 LOWER () 函數呼叫的需求,並自動將條件式操作中的字串表達式轉換為CITEXT
。 -
若要判斷您的 SQL Server 執行個體是否區分大小寫,請執行下列查詢:
SELECT SERVERPROPERTY('COLLATION');
包含 'CI' 的結果表示不區分大小寫,而 'CS' 表示區分大小寫。
-
在伺服器、資料庫或資料欄層級使用明確區分大小寫的定序設定的情況下,
CITEXT
轉換可能不適用。若要使用此功能,請確定
CITEXT
已安裝模組且可在您的目標 PostgreSQL 資料庫中使用。 -
使用
CITEXT
資料類型轉換時,請考慮下列最佳實務:-
從不區分大小寫的 SQL Server 遷移時啟用此功能,以在 PostgreSQL 中維持一致的行為。
-
檢閱您的應用程式程式碼,以確保它不依賴區分大小寫的字串操作。
-
在遷移後徹底測試您的應用程式,以確認不區分大小寫的行為如預期般維護。
-
-