Sdílet prostřednictvím


Převod schémat Db2 (Db2ToSQL)

Po připojení k db2 i SQL Serveru a nastavení možností mapování projektů a dat můžete převést databázové objekty Db2 na databázové objekty SQL Serveru.

Proces převodu

Převod databázových objektů přebírá definice objektů z db2, převede je na podobné objekty SQL Serveru a pak tyto informace načte do metadat nástroje SQL Server Migration Assistant (SSMA). Nenačítá informace do instance SQL Serveru. Objekty a jejich vlastnosti pak můžete zobrazit pomocí Průzkumníka metadat SQL Serveru.

Během převodu SSMA vytiskne výstupní zprávy do podokna Výstup a chybové zprávy do podokna Seznam chyb. Pomocí výstupu a informací o chybě určete, jestli je nutné upravit databáze Db2 nebo proces převodu, abyste získali požadované výsledky převodu.

Nastavení možností převodu

Před převodem objektů zkontrolujte možnosti převodu projektu v dialogovém okně Nastavení projektu. Pomocí tohoto dialogového okna můžete nastavit, jak SSMA převádí funkce a globální proměnné. Další informace naleznete v tématu Nastavení projektu (převod).

Výsledky převodu

Následující tabulka ukazuje, které objekty Db2 jsou převedeny a výsledné objekty SQL Serveru:

Db2 – objekty Výsledné objekty SQL Serveru
Datové typy SSMA mapuje každý typ s výjimkou následujících typů:

CLOB: Některé nativní funkce, které s tímto typem pracují, nejsou podporované (například CLOB_EMPTY())

BLOB: Některé nativní funkce pro práci s tímto typem nejsou podporované (například BLOB_EMPTY())

DBLOB: Některé nativní funkce pro práci s tímto typem nejsou podporované (například DBLOB_EMPTY())
Uživatelem definované typy SSMA mapuje následující uživatelem definované objekty:

- Odlišný typ
- Strukturovaný typ
– Datové typy SQL PL

Poznámka: slabé typy kurzoru nejsou podporované.
Speciální registry SSMA mapuje pouze následující registry:

CURRENT TIMESTAMP
CURRENT DATE
CURRENT TIME
CURRENT TIMEZONE
CURRENT USER
SESSION_USER a USER
SYSTEM_USER
CURRENT CLIENT_APPLNAME
CURRENT CLIENT_WRKSTNNAME
CURRENT LOCK TIMEOUT
CURRENT SCHEMA
CURRENT SERVER
CURRENT ISOLATION

Jiné speciální registry nejsou mapovány na sémantiku SQL Serveru.
CREATE TABLE SSMA mapuje CREATE TABLE s následujícími výjimkami:

Multidimenzionální tabulky clusteringu (MDC)
Tabulky s rozsahovým klastrováním (RCT)
Dělené tabulky
Odpojená tabulka
klauzule DATA CAPTURE
možnost IMPLICITLY HIDDEN
možnost VOLATILE
CREATE VIEW SSMA mapuje CREATE VIEW na WITH LOCAL CHECK OPTION, ale jiné možnosti nejsou mapovány do sémantiky SQL Serveru.
CREATE INDEX SSMA mapuje CREATE INDEX s následujícími výjimkami:

Index XML
možnost BUSINESS_TIME WITHOUT OVERLAPS
klauzule PARTITIONED
možnost SPECIFICATION ONLY
možnost EXTEND USING
možnost MINPCTUSED
možnost PAGE SPLIT
Spouště SSMA mapuje následující sémantiku triggeru:

Spouštěče AFTER / FOR EACH ROW

spouště AFTER / FOR EACH STATEMENT

BEFORE / FOR EACH ROW a INSTEAD OF / FOR EACH ROW spouštěče
Sekvence Mapovány.
příkaz SELECT SSMA mapuje SELECT s následujícími výjimkami:

klauzule data-change-table-reference – Je částečně namapována, ale tabulky FINAL nejsou podporovány.

odkaz na tabulku - Částečně mapováno, ale pouze odkazy na tabulku, odkazy na vnější tabulku, analyzované výrazy tabulek, odvozené kolekce tabulek, a výrazy xmltabulky nejsou mapovány na sémantiku SQL Serveru.

period-specification klauzule – nenamapováno.

Klauzule Continue-handler – nenamapovaná.

Klauzule typové korelace – nenamapovaná.

Klauzule o řešení současného přístupu – nenamapovaná.
příkaz VALUES Mapovány.
příkaz INSERT Mapovány.
příkaz UPDATE SSMA mapuje UPDATE s následujícími výjimkami:

Klauzule Table-reference – odkaz pouze na tabulku není mapován na sémantiku SQL Serveru.

Klauzule Doba trvání – není zmapována.
příkaz MERGE SSMA přiřazuje MERGE s následujícími výjimkami:

Single vs Multiple Occurrences of Each klauzule – mapováno na sémantiku SQL Serveru pro omezené výskyty každé klauzule

klauzule SIGNAL – nemapuje se na sémantiku SQL Serveru

Smíšené UPDATE a klauzule DELETE – neodpovídá sémantice SQL Serveru

Klauzule Period – nemapuje se na sémantiku SQL Serveru
příkaz DELETE SSMA mapuje DELETE s následujícími výjimkami:

Klauzule Table-reference – odkaz pouze na tabulku není mapován na sémantiku SQL Serveru.

Klauzule Period – nemapuje se na sémantiku SQL Serveru
Úroveň izolace a typ zámku Mapovány.
Procedury (SQL) Mapovány.
Postupy (externí) Vyžadovat ruční aktualizaci.
Postupy (zdroj) Nepoužívejte mapování na sémantiku SQL Serveru.
Příkaz přiřazení Mapovány.
CALL prohlášení pro proceduru Mapovány.
příkaz CASE Mapovány.
příkaz FOR Mapovány.
Prohlášení GOTO Mapovány.
příkaz IF Mapovány.
příkaz ITERATE Mapovány.
příkaz LEAVE Mapovány.
příkaz LOOP Mapovány.
Prohlášení REPEAT Mapovány.
příkaz RESIGNAL Podmínky nejsou podporovány. Zprávy můžou být volitelné.
prohlášení RETURN Mapovány.
příkaz SIGNAL Podmínky nejsou podporovány. Zprávy můžou být volitelné.
příkaz WHILE Mapovány.
příkaz GET DIAGNOSTICS SSMA mapuje GET DIAGNOSTICS s následujícími výjimkami:

ROW_COUNT – Mapováno.

Db2_RETURN_STATUS – mapováno.

MESSAGE_TEXT – Zmapováno.

Db2_SQL_NESTING_LEVEL – nemapuje se na sémantiku SQL Serveru

Db2_TOKEN_STRING – nemapuje se na sémantiku SQL Serveru
Kurzory SSMA mapuje kurzory s následujícími výjimkami:

příkaz ALLOCATE CURSOR – nemapuje se na sémantiku SQL Serveru

příkaz ASSOCIATE LOCATORS – nemapuje se na sémantiku SQL Serveru

příkaz DECLARE CURSOR – klauzule Returnability není namapovaná na sémantiku SQL Serveru.

FETCH příkaz – částečné mapování. Jako cílová hodnota jsou podporovány pouze proměnné. SQLDA DESCRIPTOR není mapován na sémantiku SQL Serveru
Proměnné Mapovány.
Výjimky, obslužné rutiny a podmínky SSMA mapuje zpracování výjimek s následujícími odchylkami:

EXIT zpracovatelé – mapované.

UNDO obslužné rutiny – namapované.

CONTINUE obslužné rutiny – nenamapované.

Podmínky – nemapuje se na sémantiku SQL Serveru.
Dynamické SQL Není namapováno.
Aliasy Mapovány.
Přezdívky Částečné mapování Pro podkladový objekt se vyžaduje ruční zpracování.
Synonyma Mapovány.
Standardní funkce v Db2 SSMA mapuje standardní funkce Db2, pokud je ekvivalentní funkce dostupná na SQL Serveru:
Oprávnění Není namapováno.
Predikáty Mapovány.
příkaz SELECT INTO Není namapováno.
prohlášení VALUES INTO Není namapováno.
Řízení transakcí Není namapováno.

Převod databázových objektů Db2

Chcete-li převést databázové objekty Db2, nejprve vyberte objekty, které chcete převést, a potom SSMA provést převod. Chcete-li zobrazit výstupní zprávy během převodu, přejděte na Zobrazení>Výstup.

Převod objektů Db2 na syntaxi SQL Serveru

  1. V Průzkumníku metadat Db2 rozbalte server Db2 a potom rozbalte schémat.

  2. Vyberte objekty, které chcete převést:

    • Chcete-li převést všechna schémata, zaškrtněte políčko vedle Schémata.

    • Pokud chcete databázi převést nebo vynechat, zaškrtněte políčko vedle názvu schématu.

    • Chcete-li převést nebo vynechat kategorii objektů, rozbalte schéma a potom zaškrtněte nebo zrušte zaškrtnutí políčka vedle kategorie.

    • Chcete-li převést nebo vynechat jednotlivé objekty, rozbalte složku kategorie a potom zaškrtněte nebo zrušte zaškrtnutí políčka vedle objektu.

  3. Chcete-li převést všechny vybrané objekty, klepněte pravým tlačítkem na Schémata a vyberte Převést schéma.

    Jednotlivé objekty nebo kategorie objektů můžete také převést tak, že kliknete pravým tlačítkem myši na objekt nebo jeho nadřazenou složku a pak vyberete Převést schéma.

Zobrazení problémů s převodem

Některé objekty Db2 nemusí být převedeny. Míru úspěšnosti převodu můžete určit zobrazením souhrnné sestavy převodu.

Zobrazit souhrnnou sestavu

  1. V Průzkumníku metadat Db2 vyberte schémat.

  2. V pravém podokně vyberte kartu Zpráva.

    Tato zpráva zobrazuje souhrnnou zprávu posouzení všech databázových objektů, které byly vyhodnoceny nebo převedeny. Můžete také zobrazit souhrn pro jednotlivé objekty.

    • Pokud chcete zobrazit sestavu pro jednotlivé schéma, vyberte schéma v Průzkumníku metadat Db2.

    • Pokud chcete zobrazit sestavu pro jednotlivý objekt, vyberte objekt v Průzkumníku metadat Db2. Objekty s problémy s převodem mají červenou ikonu chyby.

U objektů, které selhaly převod, můžete zobrazit syntaxi, která způsobila selhání převodu.

Zobrazení individuálních problémů s převodem

  1. V Průzkumníku metadat Db2 rozbalte schémata.

  2. Rozbalte schéma, které zobrazuje červenou ikonu chyby.

  3. Ve schématu rozbalte složku s červenou ikonou chyby.

  4. Vyberte objekt, který má červenou ikonu chyby.

  5. V pravém podokně vyberte kartu Sestava.

  6. V horní části karty Sestava je rozevírací seznam. Pokud se v seznamu zobrazí Statistika, změňte výběr na Zdroj.

    SSMA zobrazí zdrojový kód a několik tlačítek bezprostředně nad kódem.

  7. Vyberte tlačítko Další problém (červená ikona chyby se šipkou vpravo).

    SSMA zvýrazní první problematický zdrojový kód, který najde v aktuálním objektu.

Pro každou položku, která se nedá převést, musíte určit, co chcete s tímto objektem udělat:

  • Zdrojový kód pro procedury můžete upravit na kartě SQL.

  • Objekt v databázi Db2 můžete upravit tak, aby se odebral nebo upravil problematický kód. Pokud chcete načíst aktualizovaný kód do SSMA, musíte aktualizovat metadata. Další informace naleznete v tématu Připojení k databázi Db2.

  • Objekt můžete vyloučit z migrace. V Průzkumníku metadat SQL Serveru a Průzkumníku metadat Db2 zrušte zaškrtnutí políčka vedle položky před načtením objektů do SQL Serveru a migrací dat z Db2.