Share via


轉換 DB2 結構描述 (DB2ToSQL)

連線到 DB2、SQL Server,並設定專案和資料對應選項之後,您可以將 DB2 資料庫物件轉換成 SQL Server 資料庫物件。

轉換程序

轉換資料庫物件會從 DB2 取得物件定義、將其轉換為類似的 SQL Server 物件,然後將此資訊載入適用於 DB2 的 SSMA 中繼資料。 此程序不會將資訊載入 SQL Server 的執行個體。 然後,您可以使用 SQL Server Metadata Explorer 來檢視物件及其屬性。

在轉換期間,SSMA 會將輸出訊息列印至輸出窗格,並將錯誤訊息列印至 [錯誤清單] 窗格。 使用輸出和錯誤資訊來判斷您是否必須修改 DB2 資料庫或轉換程序,以取得所需的轉換結果。

設定轉換選項

轉換物件前,請先檢閱 [專案設定] 對話方塊中的專案轉換選項。 您可以使用這個對話方塊來設定 SSMA 如何轉換函式和全域變數。 如需詳細資訊,請參閱專案設定 (轉換) (DB2ToSQL)

轉換結果

下表顯示哪些 DB2 物件已轉換,以及因而產生的 SQL Server 物件:

DB2 物件 產生的 SQL Server 物件
資料類型 SSMA 會對應下列項目以外的每個類型:

CLOB:不支援使用此類型的某些原生函式 (例如 CLOB_EMPTY())

BLOB:不支援使用此類型的某些原生函式 (例如 BLOB_EMPTY())

DLOB:不支援使用此類型的某些原生函式 (例如 DLOB_EMPTY())
使用者定義類型 SSMA 會對應下列使用者定義的項目:

相異類型

結構化類型

SQL PL 資料類型 - 注意:不支援弱式資料指標類型。
特殊暫存器 SSMA 只會對應下列暫存器:

CURRENT TIMESTAMP

CURRENT DATE

CURRENT TIME

CURRENT TIMEZONE

CURRENT USER

SESSION_USER 和 USER

SYSTEM_USER

CURRENT CLIENT_APPLNAME

CURRENT CLIENT_WRKSTNNAME

CURRENT LOCK TIMEOUT

CURRENT SCHEMA

CURRENT SERVER

CURRENT ISOLATION

其他特殊暫存器不會對應至 SQL Server 語意。
CREATE TABLE SSMA 會對應 CREATE TABLE,但有下列例外狀況:

多維度叢集 (MDC) 資料表

範圍叢集資料表 (RCT)

資料分割資料表

卸離資料表

DATA CAPTURE 子句

IMPLICITLY HIDDEN 選項

VOLATILE 選項
CREATE VIEW SSMA 會對應 CREATE VIEW 與「WITH LOCAL CHECK OPTION」,但其他選項不會對應至 SQL Server 語意
CREATE INDEX SSMA 會對應 CREATE INDEX,但有下列例外狀況:

XML 索引

BUSINESS_TIME WITHOUT OVERLAPS 選向

PARTITIONED 子句

SPECIFICATION ONLY 選項

EXTEND USING 選項

MINPCTUSED 選項

PAGE SPLIT 選項
觸發程序 SSMA 會對應下列觸發程序語意:

AFTER / FOR EACH ROW 觸發程序

AFTER /FOR EACH STATEMENT 觸發程序

BEFORE / FOR EACH ROW 和 INSTEAD OF / FOR EACH ROW 觸發程序
序列 會對應。
SELECT 陳述式 SSMA 會對應 SELECT,但有下列例外狀況:

Data-change-table-reference 子句 - 部分對應,但不支援 FINAL 資料表

Table-reference 子句 - 部分對應,但 only-table-reference、outer-table-reference、analyze_table-expression、collection-derived-table、xmltable-expression 不會對應至 SQL Server 語意

Period-specification 子句 - 不會對應。

Continue-handler 子句 - 不會對應。

Typed-correlation 子句 - 不會對應。

Concurrent-access-resolution 子句 - 不會對應。
VALUES 陳述式 會對應。
INSERT 陳述式 會對應。
UPDATE 陳述式 SSMA 會對應 UPDATE,但有下列例外狀況:

Table-reference 子句 - Only-table-reference 不會對應至 SQL Server 語意

Period 子句 - 不會對應。
MERGE 陳述式 SSMA 會對應 MERGE,但有下列例外狀況:

每個子句的單次與多次出現 - 會對應至 SQL Server 語意,以取得每個子句的有限出現次數

SIGNAL 子句 - 不會對應至 SQL Server 語意

混合 UPDATE 和 DELETE 子句 - 不會對應至 SQL Server 語意

Period 子句 - 不會對應至 SQL Server 語意
DELETE 陳述式 SSMA 會對應 DELETE,但有下列例外狀況:

Table-reference 子句 - Only-table-reference 不會對應至 SQL Server 語意

Period 子句 - 不會對應至 SQL Server 語意
隔離等級和鎖定類型 會對應。
程序 (SQL) 會對應。
程序 (外部) 需要手動更新。
程序 (來源化) 不會對應至 SQL Server 語意。
指派陳述式 會對應。
程序的 CALL 陳述式 會對應。
CASE 陳述式 會對應。
FOR 陳述式 會對應。
GOTO 陳述式 會對應。
IF 陳述式 會對應。
ITERATE 陳述式 會對應。
LEAVE 陳述式 會對應。
Loop 陳述式 會對應。
REPEAT 陳述式 會對應。
RESIGNAL 陳述式 不支援條件。 訊息為選用。
RETURN 陳述式 會對應。
SIGNAL 陳述式 不支援條件。 訊息為選用。
WHILE 陳述式 會對應。
GET DIAGNOSTICS 陳述式 SSMA 會對應 GET DIAGNOSTICS,但有下列例外狀況:

ROW_COUNT - 會對應。

DB2_RETURN_STATUS - 會對應。

MESSAGE_TEXT - 會對應。

DB2_SQL_NESTING_LEVEL - 不會對應至 SQL Server 語意

DB2_TOKEN_STRING - 不會對應至 SQL Server 語意
資料指標 SSMA 會對應 CURSORS,但有下列例外狀況:

ALLOCATE CURSOR 陳述式 - 不會對應至 SQL Server 語意

ASSOCIATE LOCATORS 陳述式 - 不會對應至 SQL Server 語意

DECLARE CURSOR 陳述式 - Returnability 子句不會對應至 SQL Server 語意

FETCH 陳述式 - 部分對應。 僅支援作為目標的變數。 SQLDA DESCRIPTOR 不會對應至 SQL Server 語意
變數 會對應。
例外狀況、處理常式和條件 SSMA 會對應「例外狀況處理」,但有下列例外狀況:

EXIT 處理常式 - 會對應。

UNDO 處理常式 - 會對應。

CONTINUE 處理常式 - 不會對應。

條件 - 不會對應至 SQL Server 語意。
動態 SQL 不會對應。
別名 會對應。
暱稱 部分對應。 基礎物件需要手動處理
同義字 會對應。
DB2 中的標準函式 SQL Server 中提供對等函式時,SSMA 會對應 DB2 標準函式:
授權 不會對應。
述詞 會對應。
SELECT INTO 陳述式 不會對應。
VALUES INTO 陳述式 不會對應。
交易控制 不會對應。

轉換 DB2 資料庫物件

轉換 DB2 資料庫物件時,必須先選取要轉換的物件,再讓 SSMA 執行轉換。 若要在轉換期間檢視輸出訊息,請在 [檢視] 功能表上點選 [輸出]。

將 DB2 物件轉換成 SQL Server 語法

  1. 在 [DB2 Metadata Explorer] 中,展開 DB2 伺服器,然後展開 [結構描述]。

  2. 選取要轉換的物件:

    • 若要轉換所有結構描述,請勾選 [結構描述] 旁的核取方塊。

    • 若要轉換或省略某個資料庫,請勾選結構描述名稱旁邊的核取方塊。

    • 若要轉換或省略某個物件類別,請展開結構描述,然後勾選或清除類別旁的核取方塊。

    • 若要轉換或省略個別物件,請展開類別資料夾,然後勾選或清除物件旁邊的核取方塊。

  3. 若要轉換所有選取的物件,請以滑鼠右鍵按一下 [結構描述],然後選取 [轉換結構描述]。

    您也能以滑鼠右鍵按一下物件或其父資料夾,然後選取 [轉換結構描述],以轉換個別物件或物件類別。

檢視轉換問題

某些 DB2 物件可能無法轉換。 您可以檢視摘要轉換報告來判斷轉換成功率。

檢視摘要報告

  1. 在 DB2 Metadata Explorer 中,選取 [結構描述]。

  2. 在右側窗格中,選取 [報告] 索引標籤。

    此報告會顯示已評估或已轉換之所有資料庫物件的摘要評估報告。 您也可以檢視個別物件的摘要報告:

    • 若要檢視個別結構描述的報告,請在 DB2 Metadata Explorer 中選取結構描述。

    • 若要檢視個別物件的報告,請在 DB2 Metadata Explorer 中選取物件。 發生轉換問題的物件會帶有紅色錯誤圖示。

針對轉換失敗的物件,您可以檢視導致轉換失敗的語法。

檢視個別轉換問題

  1. 在 DB2 Metadata Explorer 中,展開 [結構描述]。

  2. 展開顯示紅色錯誤圖示的結構描述。

  3. 在結構描述下,展開具有紅色錯誤圖示的資料夾。

  4. 選取具有紅色錯誤圖示的物件。

  5. 在右側窗格中,按一下 [報告] 索引標籤。

  6. [報告] 索引標籤頂端有一個下拉式清單。 如果清單顯示 [統計資料],請將選取項目變更為 [來源]。

    SSMA 會顯示原始程式碼,程式碼正上方有數個按鈕。

  7. 按一下 [下一個問題] 按鈕。 這是紅色錯誤圖示,具有指向右側的箭頭。

    SSMA 會反白顯示在目前物件中找到的第一個有問題的原始程式碼。

對於無法轉換的每個項目,您必須決定要對該物件執行的動作:

  • 您可以在 [SQL] 索引標籤上修改程序的原始程式碼。

  • 您可以修改 DB2 資料庫中的物件,以移除或修改有問題的程式碼。 若要將更新的程式碼載入 SSMA,您必須更新中繼資料。 如需詳細資訊,請參閱連線到 DB2 Database (DB2ToSQL)

  • 您可以將物件排除在移轉作業之外。 在 SQL Server Metadata Explorer 和 DB2 Metadata Explorer 中,清除項目旁的核取方塊,再將物件載入 SQL Server 並從 DB2 移轉資料。

後續步驟

移轉程序的下一個步驟是將已轉換的物件載入 SQL Server

另請參閱

將 DB2 資料移轉到 SQL Server (DB2ToSQL)