次の方法で共有


DB2 スキーマの変換 (DB2ToSQL)

DB2 および SQL Server に接続し、プロジェクトとデータ マッピングのオプションを設定したら、DB2 データベース オブジェクトを SQL Server データベース オブジェクトに変換できます。

変換プロセス

データベース オブジェクトの変換では、DB2 からオブジェクト定義を取得し、類似の SQL Server オブジェクトに変換後、この情報を SSMA メタデータに読み込みます。 その情報は、SQL Server のインスタンスには読み込まれません。 その後、SQL Server メタデータ エクスプローラーを使用して、オブジェクトとそのプロパティを表示できます。

変換中に SSMA によって、出力メッセージは出力ペイン、エラー メッセージはエラー一覧ペインに出力されます。 出力とエラー情報を使用して、目的の変換結果を取得するために DB2 データベースまたは変換プロセスを変更する必要があるかどうかを判断します。

変換のオプションの設定

オブジェクトを変換する前に、[プロジェクト設定]ダイアログ ボックスのプロジェクト変換オプションを確認します。 このダイアログ ボックスを使用すると、SSMA の関数とグローバル変数の変換方法を設定できます。 詳細については、「プロジェクト設定 (変換) (DB2ToSQL)」を参照してください。

変換結果

次の表は、変換されている DB2 オブジェクトと、結果の SQL Server オブジェクトを示しています。

DB2 オブジェクト 結果となる SQL Server オブジェクト
データ型 SSMA は、次に示すもの以外の全種類をマップします。

CLOB: この型を操作するための一部のネイティブ関数はサポート対象外です (例: CLOB_EMPTY())

BLOB: この型を操作するための一部のネイティブ関数はサポート対象外です (例: BLOB_EMPTY())

DBLOB: この型を操作するための一部のネイティブ関数はサポート対象外です (例: DBLOB_EMPTY())
ユーザー定義型 SSMA は、次のユーザー定義をマップします。

Distinct Type

構造化型

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 テーブルはサポート対象外

テーブル参照クローズ - 部分的にマップされますが、only-table-reference、outer-table-reference、analyze_table 式、コレクション派生テーブル、xmltable 式は SQL Server セマンティクスにマップされません

期間指定クローズ - マップされていません。

Continue-handler クローズ - マップされていません。

型指定された相関句クローズ - マップされていません。

Concurrent-access-resolution クローズ - マップされていません。
VALUES ステートメント マップされています。
INSERT ステートメント マップされています。
UPDATE ステートメント SSMA は、次の例外を除き UPDATE をマップします。

テーブル参照クローズ - Only-table-reference は SQL Server セマンティクスにマップされない

Period クローズ - マップされていません。
MERGE ステートメント SSMA は、次の例外を除き MERGE をマップします。

各クローズの 1 回きりの出現と複数回の出現 - 各クローズの限定的な出現に対して SQL Server セマンティクスにマップされます

SIGNAL クローズ - SQL Server セマンティクスにマップされない

UPDATE クローズと DELETE クローズの混在 - SQL Server セマンティクスにマップされない

Period クローズ - SQL Server セマンティクスにマップされません
DELETE ステートメント 次の例外を除いて SSMA は DELETE をマップします。

テーブル参照クローズ - 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 の標準関数 SSMA は、SQL Server で同等の関数を使用できる場合に DB2 標準関数をマップします。
承認 マッピングされていません
述語 マップされています。
SELECT INTO ステートメント マッピングされていません
VALUES INTO ステートメント マッピングされていません
トランザクション コントロール マッピングされていません

DB2 データベース・オブジェクトの変換

DB2 データベース・オブジェクトを変換するには、最初に変換するオブジェクトを選択してから、SSMA で変換を実行します。 変換中に出力メッセージを表示するには、[表示] メニューの [出力] を選択します。

DB2 オブジェクトを SQL Server 構文に変換するには

  1. DB2 メタデータ エクスプローラーで、DB2 サーバーを展開し、[スキーマ]を展開します。

  2. 変換するオブジェクトを選択します。

    • すべてのスキーマを変換するには、[スキーマ] の横にあるチェック ボックスをオンにします。

    • データベースを変換または省略するには、スキーマ名の横にあるチェック ボックスをオンにします。

    • オブジェクトのカテゴリを変換または省略するには、スキーマを展開し、カテゴリの横にあるチェック ボックスをオンまたはオフにします。

    • 個々のオブジェクトを変換または省略するには、カテゴリ フォルダーを展開し、オブジェクトの横にあるチェック ボックスをオンまたはオフにします。

  3. 選択したすべてのオブジェクトを変換するには、[スキーマ] を右クリックし、[スキーマの変換] を選択します。

    オブジェクトまたはその親フォルダーを右クリックし、[スキーマの変換] を選択して、オブジェクトの個々のオブジェクトまたはカテゴリを変換することもできます。

変換の問題の表示

一部の DB2 オブジェクトは変換されない場合があります。 コンバージョンの成功率を確認するには、サマリーコンバージョンレポートを表示します。

概要レポートを表示するには

  1. DB2 メタデータ・エクスプローラーで、「スキーマ」を選択します。

  2. 右側のペインで [レポート] タブを選択します。

    このレポートには、評価または変換されたすべてのデータベース オブジェクトの概要評価レポートが表示されます。 個々のオブジェクトの概要レポートを表示することもできます。

    • 個々のスキーマのレポートを表示するには、DB2 メタデータ エクスプローラーでスキーマを選択します。

    • 個々のオブジェクトのレポートを表示するには、DB2 メタデータ・エクスプローラーでオブジェクトを選択します。 変換に問題があるオブジェクトには、赤いエラー アイコンがあります。

変換に失敗したオブジェクトの場合は、変換エラーの原因になった構文を表示できます。

個々の変換の問題を表示するには

  1. DB2 メタデータ エクスプローラーで、[スキーマ] を展開します。

  2. 赤いエラー アイコンを示すスキーマを展開します。

  3. スキーマの下で、赤いエラー アイコンがあるフォルダーを展開します。

  4. 赤いエラー アイコンが表示されているオブジェクトを選択します。

  5. 右ペインで、[レポート] をクリックします。

  6. [レポート] タブの上部にはドロップダウン リストがあります。 一覧に [統計] が表示されている場合は、選択内容を [ソース] に変更します。

    SSMA では、ソース コードと、コードのすぐ上に複数のボタンが表示されます。

  7. [次の問題] ボタンをクリックします。 これは、右を指す矢印が付いた赤いエラー アイコンです。

    SSMA では、現在のオブジェクトで見つかる最初の問題のあるソース コードが強調表示されます。

変換できなかった項目ごとに、そのオブジェクトで何を行うかを決定する必要があります。

  • [SQL] タブでプロシージャのソース コードを変更できます。

  • DB2 データベース内のオブジェクトを変更して、問題のあるコードを削除または修正することができます。 更新されたコードを SSMA に読み込むには、メタデータを更新する必要があります。 詳細については、「DB2 Databaseに接続する (DB2ToSQL)」を参照してください。

  • 移行からオブジェクトを除外できます。 SQL Server メタデータ エクスプローラーと DB2 メタデータ エクスプローラーで、項目の横にあるチェック ボックスをオフにしてから、オブジェクトを SQL Server に読み込み、DB2 からデータを移行します。

次の手順

移行プロセスの次の手順では、変換されたオブジェクトを SQL Server に読み込みます

参照

DB2 データの SQL Server への移行 (DB2ToSQL)