oracle 互換(後半) - ibm...number 1-31,1-31 number(p,s)...

54
2Oracle互換 (後半) に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Systems Engineering Co., Ltd. 2009 <第1.00版 2009年 7>

Upload: others

Post on 07-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

第2章 Oracle互換 (後半)

本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。

この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同

様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。

© Copyright IBM Japan Systems Engineering Co., Ltd. 2009

<第1.00版 2009年 7月>

Page 2: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

2 © 2009 ISE Corporation

内容

• Oracleから移行する際の主なタスク

• 移行をサポートするツール

• IBM Data Movement ToolによるDDL/データの移行

• IBM Optim Developer Studioによるオブジェクトの移行

Page 3: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

3 © 2009 ISE Corporation

Oracleから移行する際の主なタスクOracleから移行する際の主なタスク

Page 4: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

4 © 2009 ISE Corporation

OracleからDB2へ移行する際の主なタスク

• プロジェクトプロジェクトプロジェクトプロジェクトののののアセスアセスアセスアセスとととと計画計画計画計画

• DB関連関連関連関連リソースリソースリソースリソースのののの移行移行移行移行

• オブジェクトの移行

• データの移行

• アプリケーションの移行

• テストテストテストテスト

• 本番本番本番本番システムシステムシステムシステムのののの移行移行移行移行

Page 5: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

5 © 2009 ISE Corporation

オブジェクト移行のタスク

• 各種各種各種各種オブジェクトオブジェクトオブジェクトオブジェクトDDLのののの抽出抽出抽出抽出

• IBM Data Movement Tool, IBM Optim Development Studioが使用可能

• 移行先移行先移行先移行先データベースデータベースデータベースデータベースのののの作成作成作成作成

• 事前にDB2_COMPATIBILITY_VECTORをセットする

• DB2にあわせたにあわせたにあわせたにあわせたスキーマスキーマスキーマスキーマのののの更新更新更新更新

• データ・タイプのマッピング

• DDLフォーマットの変更

• 論理設計を変更する場合はその対応

Page 6: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

6 © 2009 ISE Corporation

• データタイプデータタイプデータタイプデータタイプ・・・・マッピングマッピングマッピングマッピングのののの例例例例((((1111))))

• IBM Optim Development Studioでのデフォルトのマッピング

XMLXMLTYPE

タイムゾーン付きは未サポートTIMESTAMP(p)pTIMESTAMP

DOUBLEBINARY_DOUBLE

FLOATBINARY_FLOAT

DECIMAL(p,s)p,sDECIMAL

NUMBERNUMBER

34桁以上では桁落ちが発生。文字列としての保持を検討DECFLOAT32-38,1-38NUMBER

NUMBER(p,s)1-31,1-31NUMBER

34桁以上では桁落ちが発生。文字列としての保持を検討DECFLOAT32-38,0NUMBER

NUMBER(p,s)19-31,0NUMBER

一律NUMBERでの保持も可能BIGINT10-18,0NUMBER

一律NUMBERでの保持も可能INTEGER5-9,0NUMBER

一律NUMBERでの保持も可能SMALLINT1-4,0NUMBER

備考ターゲット桁数ソース

Note:

Page 7: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

7 © 2009 ISE Corporation

• データタイプデータタイプデータタイプデータタイプ・・・・マッピングマッピングマッピングマッピングのののの例例例例((((2222))))

VARCHAR FOR BIT DATARAW

DBCLOBNCLOB

CLOBCLOB

BLOBBLOB

BLOBLONG RAW

BLOBBFILE

DATEも選択可TIMESTAMPDATE

CHARUROWID

CHARROWID

VARCHAR2VARCHAR2

VARCHAR255-2000CHAR

CHAR1-254CHAR

VARGRAPHICNVARCHAR2

VARGRAPHIC128-2000NCHAR

GRAPHIC1-127NCHAR

備考ターゲット桁数ソース

Note:

Page 8: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

8 © 2009 ISE Corporation

ブランクブランクブランクブランク・・・・ページページページページ

Page 9: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

9 © 2009 ISE Corporation

データ移行のタスク

• データデータデータデータのののの抽出抽出抽出抽出

• Oracleは、デフォルトではCSV等への出力機能を持たない

• IBM Data Movement Toolを使用してCSVへの抽出が可能

• 論理設計を変更する場合、データフォーマットの変換を実施

• データデータデータデータををををテストテストテストテスト環境環境環境環境へへへへ投入投入投入投入

• 移行先の表へのデータ投入が可能かどうかをチェック

• 特に論理設計の変更が行われている場合

• アプリケーションのテスト環境を提供

• 本番本番本番本番データデータデータデータ移行移行移行移行のののの計画計画計画計画、、、、準備準備準備準備

• データの抽出、転送、投入のプロセスを検証し、本番データ移行での所要時間やシステム停止時間を算出する

Page 10: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

10 © 2009 ISE Corporation

アプリケーション移行のタスク

• 移行先移行先移行先移行先ののののアプリケーションアプリケーションアプリケーションアプリケーション・・・・インターフェースインターフェースインターフェースインターフェースのののの構成構成構成構成

• JDBC, 組み込みSQL, .NET, ODBC, CLI等適切なドライバを選定、構成

する

• アプリケーションアプリケーションアプリケーションアプリケーション・・・・コードコードコードコードのののの変更変更変更変更

• DBへの接続ストリング

• 互換性のないSQLやエラーハンドリングを検出

• 分離レベルやロッキングの要件を確認

• 基本的にはDB2 9.7で提供されるCurrently Committedを使用可能

• 未サポートのAPI、Build-in-package使用、ディクショナリー参照等があれ

ば修正

• UDFやPROCEDUREの定義で回避可能か検討

• 検証検証検証検証テストテストテストテストのののの実施実施実施実施

Page 11: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

11 © 2009 ISE Corporation

DB2 V9.7 GAレベルでの主要な非互換/未サポート機能

一階層のパッケージ等に移行。名前の衝突に注意する。

Function / procedure定義のネスト

は不可(複数階層の定義)

Procedureに変更し、戻り値をパラ

メーターとして受け渡すよう変更

Function はOUT / IN OUTパラメー

ターをもてない

パッケージ内部で宣言し、タイプの参照にパッケージの接頭辞を追加

独立したType宣言は未サポート

複数のシングル・アクションのトリガーに分割する

マルチ・アクションのトリガーは未サポート

カラムのNOT NULL化や非UNIQUE

INDEXへの定義変更を検討DB2では、UNIQUE INDEXは複数

のNULL値を許容しない

Page 12: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

12 © 2009 ISE Corporation

ブランクブランクブランクブランク・・・・ページページページページ

Page 13: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

13 © 2009 ISE Corporation

移行をサポートするツール移行をサポートするツール

Page 14: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

14 © 2009 ISE Corporation

• データオブジェクトデータオブジェクトデータオブジェクトデータオブジェクトをををを移行移行移行移行するするするする

• IBM Data Movement Tool

• IBM Optim Development Studio

• データデータデータデータをををを移行移行移行移行するするするする

• IBM Data Movement Tool

• アプリケーションアプリケーションアプリケーションアプリケーションをををを移行移行移行移行するするするする

• IBM Optim Development Studio

• スクリプトスクリプトスクリプトスクリプトのののの移行移行移行移行をををを容易容易容易容易にするにするにするにする

• CLP Plus

移行をサポートするツール

Page 15: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

15 © 2009 ISE Corporation

• 他社他社他社他社DBMSからのからのからのからのDDL/データデータデータデータ抽出抽出抽出抽出ををををサポートサポートサポートサポートするするするするツールツールツールツール

• Oracle, SQL Server, Sybase, MySQL, PostgreSQL等多数のデータソースをサポート

• OracleはCSVでのデータ抽出機能を持たないため、当ツールの活用が重要

• 主主主主なななな機能機能機能機能• GUI及び、コマンドラインによるDDL/データの抽出

• GUIによるターゲット・データベースでのオブジェクト作成

• 抽出、投入をコマンドラインから実施するための各種スクリプトの生成

• Oracleソースソースソースソースのののの場合場合場合場合ににににサポートサポートサポートサポートされているされているされているされているオブジェクトオブジェクトオブジェクトオブジェクト

• 表、ビュー、シーケンス、制約、索引、シノニム(ALIAS)

• Procedure, Function, Trigger

• 権限情報(Role, Privilege)

IBM Data Movement Tool

Page 16: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

16 © 2009 ISE Corporation

• マルチマルチマルチマルチ・・・・スレッドスレッドスレッドスレッド動作動作動作動作によるによるによるによる高速高速高速高速ななななデータデータデータデータのののの抽出抽出抽出抽出がががが可能可能可能可能

• DB2へのLOAD用スクリプトも生成

• 前提前提前提前提

• JDK 1.5以降

• Oracleと接続する場合、Oracle JDBCドライバ要

• 必要なドライバは、ojdbc14.jar, xmlparserv2.jar and xdb.jar の3つ

• 入手方法入手方法入手方法入手方法

• DeveloperWorksにて配布

• http://www.ibm.com/developerworks/db2/library/techarticle/dm-0906datamovement/

• ツールの詳細な使用方法の解説もあり

IBM Data Movement Tool

Page 17: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

17 © 2009 ISE Corporation

IBM Data Movement Tool• GUI画面画面画面画面

Page 18: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

18 © 2009 ISE Corporation

ブランクブランクブランクブランク・・・・ページページページページ

Page 19: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

19 © 2009 ISE Corporation

• Data Studio Developerのののの後継後継後継後継

• 2009年6月にOptimを統合したV2.2が登場

• Oracle移行関連移行関連移行関連移行関連のののの機能強化機能強化機能強化機能強化

• Data Source ExplorerがOracleへの接続をサポート

• Copy & Pasteによるデータオブジェクトの移行をサポート

• SELECT/INSERTによるデータ移動も可能

• 互換性のないデータタイプは自動的にマッピング

• PL/SQLの移行及び、デバッグ機能を提供

IBM Optim Development Studio

Page 20: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

20 © 2009 ISE Corporation

IBM Optim Development Studio

Page 21: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

21 © 2009 ISE Corporation

CLPPlus

• OracleのSQL*Plusに似たインターフェースを持ち、SQLを実行

するためのユーティリティ

• SQL、PL/SQL、SQL PLの実行

• 対話式でのSQLの実行

• ファイルに保存したSQLの実行

• 主要なSQL*Plusコマンドをサポート

• OracleのSQL*Plusと同じような動作をする

• サポートされているコマンドは、HELP INDEXコマンドで確認

• CLPの一部のコマンドもサポート

• パラメーターのGET/UPDATE、EXPORT/IMPORT/LOAD等

Page 22: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

22 © 2009 ISE Corporation

CLPPlusの起動方法 1

• clpplus 起動起動起動起動コマンドコマンドコマンドコマンド

>>-clpplus--+------------------------+-------------------------->'-user-id--+-----------+-'

'-/password-'

>--+---+------------+----+--------------+--+----------------+-+-><| +-@host-name-+ '-:port-number-' '-/database-name-' | | '-@localhost-' | | | '-script-filename------------------------------------------

起動例:

C:¥work>clpplusclpplusclpplusclpplus db2admin/db2admin@localhost:50000/testdbdb2admin/db2admin@localhost:50000/testdbdb2admin/db2admin@localhost:50000/testdbdb2admin/db2admin@localhost:50000/testdbデータベース接続情報

ホスト名 = localhostデータベース・サーバー = DB2/NT SQL09070SQL 許可 ID = db2adminローカル・データベース別名 = TESTDBポート = 50000

CLPPlus: バージョン 1.0Copyright (c) 2009, IBM CORPORATION. All rights reserved.

SQL>

Page 23: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

23 © 2009 ISE Corporation

CLPPlusの起動方法 2

• SQL*Plusでの「sqlplus userid/password@ネットサービス名」と似た形式で接続可能

• login.sqlファイルに接続で使用する変数を定義し、接続時にその変数を使用可能

• clpplus userid/passwod@変数

• 例

C:¥work>type login.sqllogin.sqllogin.sqllogin.sqldefine test21=localhost:50000/test21define testdb=localhost:50000/testdbtestdb=localhost:50000/testdbtestdb=localhost:50000/testdbtestdb=localhost:50000/testdbC:¥work>clpplus db2admin/db2admin@testdbclpplus db2admin/db2admin@testdbclpplus db2admin/db2admin@testdbclpplus db2admin/db2admin@testdbデータベース接続情報

ホスト名 = localhostデータベース・サーバー = DB2/NT SQL09070SQL 許可 ID = db2adminローカル・データベース別名 = TESTDBポート = 50000

CLPPlus: バージョン 1.0Copyright (c) 2009, IBM CORPORATION. All rights reserved.

SQL>

login.sqlにconnect_idintifierを記述

login.sqlでdefineした

変数を指定

Page 24: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

24 © 2009 ISE Corporation

CLPPlusコマンド

• ファイルに記述されたSQLを読み込み実行

• 置換変数の使用

SQL> host dir | host dir | host dir | host dir | findstrfindstrfindstrfindstr sql10sql10sql10sql102009/05/12 01:48 306 sql10.sqlSQL> get sql10.sqlget sql10.sqlget sql10.sqlget sql10.sql1 BEGIN2 for cur1 in (SELECT * FROM dept WHERE deptno = &&&&depnodepnodepnodepno)3 LOOP4 DBMS_OUTPUT.PUT_LINE('========================');5 DBMS_OUTPUT.PUT_LINE(' DEPTNO:'||cur1.deptno);6 DBMS_OUTPUT.PUT_LINE(' DNAME :'||cur1.dname );7 DBMS_OUTPUT.PUT_LINE(' LOC :'||cur1.loc );8 END LOOP;9* END;

SQL> set serveroutput onset serveroutput onset serveroutput onset serveroutput onSQL> ////変数 depno の値を入力してください: 10

元元元元ののののステートメントステートメントステートメントステートメント:: for cur1 in (SELECT * FROM dept WHERE deptno = &:: for cur1 in (SELECT * FROM dept WHERE deptno = &:: for cur1 in (SELECT * FROM dept WHERE deptno = &:: for cur1 in (SELECT * FROM dept WHERE deptno = &depnodepnodepnodepno))))置換置換置換置換されたされたされたされた新規新規新規新規ステートメントステートメントステートメントステートメント:: for cur1 in (SELECT * FROM dept WHERE deptno = 10):: for cur1 in (SELECT * FROM dept WHERE deptno = 10):: for cur1 in (SELECT * FROM dept WHERE deptno = 10):: for cur1 in (SELECT * FROM dept WHERE deptno = 10)========================DEPTNO:10DNAME :ACCOUNTINGLOC :NEW YORK

DB250000I: コマンドは正常に完了しました。

置換変数

実行前に置き換えができる

Page 25: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

25 © 2009 ISE Corporation

CLPPlusコマンドで出力形式を整形

• CLPPlusコマンドで出力形式を整えることも可能SQL> select table_schema,table_name,num_rows,blocks from user_tables;

TABLE_SCHEMA--------------------------------------------------TABLE_NAME NUM_ROWS-------------------------------------------------- --------------------

BLOCKS--------------------DB2ADMINDEPT 5033

1004

DB2ADMINSALGRADE 5

1

TABLE_SCHEMA--------------------------------------------------TABLE_NAME NUM_ROWS-------------------------------------------------- --------------------

BLOCKS--------------------DB2ADMINBONUS 0

0

DB2ADMINEMP 6790032

100234SQL> set linesize 150set linesize 150set linesize 150set linesize 150SQL> col table_schema format a30col table_schema format a30col table_schema format a30col table_schema format a30SQL> col table_name format a30col table_name format a30col table_name format a30col table_name format a30SQL> col num_rows format 999,999,999col num_rows format 999,999,999col num_rows format 999,999,999col num_rows format 999,999,999SQL> col blocks format 999,999,999col blocks format 999,999,999col blocks format 999,999,999col blocks format 999,999,999SQL> llll1* select table_schema,table_name,num_rows,blocks from user_tables

SQL> ////

TABLE_SCHEMA TABLE_NAME NUM_ROWS BLOCKS------------------------------ ------------------------------ -------------------- --------------------DB2ADMIN DEPT 5,033 1,004DB2ADMIN SALGRADE 5 1DB2ADMIN BONUS 0 0DB2ADMIN EMP 6,790,032 100,234

変更した出力形式で出力

SQL> set linesize 150

SQL> col table_schema format a30

SQL> col table_name format a30

SQL> col num_rows format 999,999,999

SQL> col blocks format 999,999,999

SQL> l

1* select

table_schema,table_name,num_rows,blocks from

user_tables

SQL> /

デフォルトでは80バイトで行が折り返される

Page 26: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

26 © 2009 ISE Corporation

CLPPlusでDB2 CLPコマンドが使用可能!

• CLPコマンドのExportとImportをCLPPlusから実行SQL> export to c:export to c:export to c:export to c:¥¥¥¥workworkworkwork¥¥¥¥emp.del of del select * from emp;emp.del of del select * from emp;emp.del of del select * from emp;emp.del of del select * from emp;

エクスポートされる行数の合計: 12DB250000I: コマンドは正常に完了しました。

SQL> host type c:¥work¥emp.del+7369.,"SMITH","CLERK",+7902.,"1980-12-17-00.00.00",+00800.00,,+20.+7499.,"ALLEN","SALESMAN",+7698.,"1981-02-20-00.00.00",+01600.00,+00300.00,+30.・・・省略・・・

SQL> create table emp2 like emp;

DB250000I: コマンドは正常に完了しました。

SQL> import from c:import from c:import from c:import from c:¥¥¥¥workworkworkwork¥¥¥¥emp.del of del replace into emp2;emp.del of del replace into emp2;emp.del of del replace into emp2;emp.del of del replace into emp2;

読み取り行数の合計: 12スキップされた行数の合計: 0挿入された行数の合計: 12更新行数の合計: 0拒否された行数の合計: 0コミットされた行数の合計: 12DB250000I: コマンドは正常に完了しました。

SQL> select * from emp2;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO------ ---------- --------- ------ --------------------- --------- --------- ------7369 SMITH CLERK 7902 1980-12-17 00:00:00 800.00 207499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600.00 300.00 30

・・・省略・・・

デリミタ形式でファイルにExportされている

Import先の表にデータが格納された

Page 27: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

27 © 2009 ISE Corporation

IBM Data Movement Tool

を利用したDDL/データの移行IBM Data Movement Tool

を利用したDDL/データの移行

Page 28: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

28 © 2009 ISE Corporation

• 2222つのつのつのつのレジストリーレジストリーレジストリーレジストリー変数変数変数変数

• DB2_COMPATIBILITY_VECTOR

• Oracle互換機能の有効化

• DB作成前にセットすることが必須必須必須必須

• DB2_DEFERRED_PREPARE_SEMANTICS

• 型無しパラメータマーカーのサポート

• db2setにてにてにてにてレジストリーレジストリーレジストリーレジストリー変数変数変数変数をををを設定設定設定設定

• インスタンスインスタンスインスタンスインスタンスをををを再起動再起動再起動再起動してしてしてして設定設定設定設定をををを反映反映反映反映

データベース作成前の設定

$ db2set DB2_COMPATIBILITY_VECTOR=ORA$ db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES

$ db2stop force$ db2start

Page 29: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

29 © 2009 ISE Corporation

• データベースデータベースデータベースデータベース作成時作成時作成時作成時のののの一般的一般的一般的一般的なななな推奨推奨推奨推奨

• 自動ストレージを活用しストレージ管理をシンプルに

• 表スペース単位の初期サイズ、上限設定が不要

• ストレージ・パス単位での容量管理のみ実施

• 32KBページサイズの使用

• Oracleと異なり、DB2は各レコードが1ページに収まる必要がある。移行をシンプルにする場

合、なるべく大きなページサイズを使用する

• 高トランザクションのOLTP環境では、4KB等のより小さなページサイズも考慮

• 複数ページサイズを使用する場合、ページサイズごとにバッファープールが必要

• STMMを活用し、各バッファープールのサイズを最適化(デフォルト)

• LOBを格納する表スペースは分割する

• インライン格納されていないLOBはバッファープールに載らないため、データ部と表スペース

を分割し、ファイル・キャッシュの使用を有効化することとを推奨

• CREATE TABLESPACEに"FILE SYSTEM CACHING"のオプションを付加

データベースを作成

Page 30: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

30 © 2009 ISE Corporation

• CREATE DATABASEコマンドコマンドコマンドコマンドのののの例例例例

• /db2data1, /db2data2, /db2data3を自動ストレージパスとして設定

• 各ストレージ・パスは、独立したファイルシステム、物理ディスク上に配置

• データベースディレクトリーは/db2systemに配置

• デフォルトページサイズとして32KBページを指定

データベースを作成

CREATE DB TESTDB AUTOMATIC STORAGE YESON /db2data1,

/db2data2,/db2data3

DBPATH ON /db2systemPAGESIZE 32 K

Page 31: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

31 © 2009 ISE Corporation

• IBM Data Movement Toolをををを起動起動起動起動

• Linux/UnixではIBMDataMovementTool.shを起動(Windowsでは~.cmdを使用)

• Connection Informationのののの入力入力入力入力

• GUI画面の起動後にソース、ターゲットDBへの接続情報を入力

• Oracleへの接続ユーザーIDは、システムユーザーを使用することを推奨

IBM Data Movement Toolの起動

$ ls -ltotal 889-rw-r--r-- 1 db2inst1 db2grp 410 ... IBMDataMovementTool.cmd-rw-r--r-- 1 db2inst1 db2grp 897647 ... IBMDataMovementTool.jar-rwxr--r-- 1 db2inst1 db2grp 919 ... IBMDataMovementTool.sh$ cat IBMDataMovementTool.sh...java -Xmx990m -jar IBMDataMovementTool.jar $1

$ ./IBMDataMovementTool.sh

Page 32: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

32 © 2009 ISE Corporation

IBM Data Movement Toolの起動

• データベースへの接続• ボタン1,2を押下し、ソース/ターゲットDBへ接続する

1 2

3 4

Page 33: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

33 © 2009 ISE Corporation

• DDL/データデータデータデータのののの抽出抽出抽出抽出

• 出力先ディレクトリーを設定

• 抽出の対象を選択

• 抽出対象のデータが少量の場合、リモートでの抽出も可能

• 大量データの抽出は、DDLの抽出とは独立してソースDBサーバ上で行うこ

とを推奨

• 「Extract DDL/Data」ボタンを押し、抽出を実行

• (前ページチャートの「3」)

• 抽出の結果を確認

IBM Data Movement ToolによるDDL/データの抽出

Page 34: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

34 © 2009 ISE Corporation

• 必要必要必要必要にににに応応応応じてじてじてじてDDLをををを修正修正修正修正

• データ/索引/LOBの格納先表スペースの分割

• ページサイズの指定

• データタイプの再マッピング等々

• DDL/データデータデータデータのののの投入投入投入投入

• IBM Data Movement ToolのGUI画面から実施

• 「Deploy DDL/Data」ボタンから一括作成

• 「Interactive Deploy」機能を使用して個別に作成

• ツールが生成するdb2ddl.sh / db2gen.shを手動で実行

• 生成対象のオブジェクト

• バッファープール、表スペース、表、制約、シーケンス、シノニム(ALIAS)

IBM Data Movement Toolの起動

Page 35: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

35 © 2009 ISE Corporation

Note:

• IBM Data Movement Toolがががが生成生成生成生成するするするする設定設定設定設定ファイルファイルファイルファイル、、、、スクリプトスクリプトスクリプトスクリプト

IBM Data Movement Toolののののプロパティファイルプロパティファイルプロパティファイルプロパティファイル。。。。データベースデータベースデータベースデータベースへへへへ

のののの接続情報接続情報接続情報接続情報やややや、、、、前回実行時前回実行時前回実行時前回実行時ののののオプションオプションオプションオプションをををを保持保持保持保持するするするする。。。。

IBMExtract.properties

ソースソースソースソースDB、、、、ターゲットターゲットターゲットターゲットDBのののの両方両方両方両方にににに接続接続接続接続しししし、、、、<SID>.tableをををを元元元元ににににテーテーテーテー

ブルブルブルブルのののの件数件数件数件数ををををカウントカウントカウントカウントするするするする。。。。

rowcount

db2gen.sh

db2ddl.sh

unload

<SID>.table

geninput

ファイルファイルファイルファイル名名名名

ターゲットターゲットターゲットターゲットDBにににに接続接続接続接続しししし、、、、DDLのののの実行実行実行実行ととととデータデータデータデータのののの投入投入投入投入をををを行行行行うううう((((PL/SQLをををを含含含含むむむむオブジェクトオブジェクトオブジェクトオブジェクトはははは対象外対象外対象外対象外)。)。)。)。DDL/データデータデータデータのののの両方両方両方両方をををを抽出抽出抽出抽出したしたしたした際際際際にににに生生生生

成成成成されるされるされるされる。。。。

ターゲットターゲットターゲットターゲットDBにににに接続接続接続接続しししし、、、、DDL中中中中にににに含含含含まれたまれたまれたまれたオブジェクトオブジェクトオブジェクトオブジェクトをををを作成作成作成作成するするするするススススクリプトクリプトクリプトクリプト((((PL/SQLをををを含含含含むむむむオブジェクトオブジェクトオブジェクトオブジェクトはははは対象外対象外対象外対象外)。)。)。)。DDLのみをのみをのみをのみを抽出対抽出対抽出対抽出対

象象象象としたときにとしたときにとしたときにとしたときに生成生成生成生成されるされるされるされる。。。。

ソースソースソースソースDBにににに接続接続接続接続しししし、、、、DDL/データデータデータデータのののの抽出抽出抽出抽出をををを実行実行実行実行するするするするスクリプトスクリプトスクリプトスクリプト。。。。抽出抽出抽出抽出のののの対象対象対象対象((((DDLのみのみのみのみ、、、、データデータデータデータのみのみのみのみ、、、、DDL及及及及びびびびデータデータデータデータ))))はははは、、、、プロパティファプロパティファプロパティファプロパティファイルイルイルイル((((IBMExtract.properties))))のののの設定内容設定内容設定内容設定内容でででで決定決定決定決定されるされるされるされる。。。。

ソースソースソースソースDBにににに接続接続接続接続しししし、、、、<SID>.tableファイルファイルファイルファイルをををを生成生成生成生成するするするする

移行対象移行対象移行対象移行対象ののののテーブルテーブルテーブルテーブル一覧一覧一覧一覧。。。。ソースソースソースソースDB上上上上ののののテーブルテーブルテーブルテーブルをををを元元元元にににに生成生成生成生成されされされされ

るるるる。。。。このこのこのこのファイルファイルファイルファイルのののの内容内容内容内容をををを編集編集編集編集することですることですることですることで、、、、ツールツールツールツールによるによるによるによる移行対象移行対象移行対象移行対象のののの表表表表をををを制御可能制御可能制御可能制御可能。。。。<SID>ははははオラクルオラクルオラクルオラクルののののシステムシステムシステムシステム識別子識別子識別子識別子をををを表表表表すすすす

内容内容内容内容

Page 36: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

36 © 2009 ISE Corporation

Note:

• 前述前述前述前述したしたしたした設定設定設定設定ファイルファイルファイルファイル、、、、スクリプトスクリプトスクリプトスクリプト以外以外以外以外ののののファイルファイルファイルファイル

db2check.sql

db2synonyms.db2

db2uniq.sql

db2cons.sql

db2default.sql

db2tsbp.sql

db2udf.sql

db2tables.sql

db2fkeys.sql

db2sequences.sql

オブジェクトオブジェクトオブジェクトオブジェクトののののDDL

db2plsql_type_body.db2

db2plsql_type.db2

db2plsql_views.db2

db2plsql_procedure.db2

db2plsql_function.db2

db2plsql_package.db2

db2plsql_package_body.db2

db2plsql_trigger.db2

PL/SQLをををを含含含含むむむむDDL

db2load.sql

db2loadterminate.db2

db2checkRemoval.sh

データロードデータロードデータロードデータロード用用用用スクリプトスクリプトスクリプトスクリプト

db2roleprivs.db2

db2objprivs.db2

db2runstats.sql

db2droptables.db2

db2tabcount.sql

db2tabstatus.sql

db2checkpending.sql

db2fkdrop.sql

そのそのそのその他他他他

db2roleprivs.db2

db2objprivs.db2

権限情報権限情報権限情報権限情報

Page 37: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

37 © 2009 ISE Corporation

• 「「「「Interactive deploy mode」」」」によるによるによるによるオブジェクトオブジェクトオブジェクトオブジェクトのののの作成作成作成作成

• GUI画面からのオブジェクト作成も可能

• "Interactive Deploy" タブから“Refresh Objects to be deploy“を選択

• 抽出したDDLを読み込み、オブジェクトのツリーが表示される。

• 個別に対象オブジェクトを選択して作成可能

• 一括作成も可能

IBM Data Movement Tool

Page 38: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

38 © 2009 ISE Corporation

• コマンドラインコマンドラインコマンドラインコマンドラインからのからのからのからのツールツールツールツール実行実行実行実行

• IBM Data Movement Toolはコマンドライン環境からも実行可能

• テキストによる対話式のメニューから実行する

コンソールモードによる IBM Data Movement Tool の実行

Page 39: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

39 © 2009 ISE Corporation

• コンソールコンソールコンソールコンソール・・・・モードモードモードモードでのでのでのでの起動起動起動起動

• TELNET/SSH等のコマンドライン環境から起動した場合、自動的にコンソール・モードで起動

• "-console" オプションを負荷することで、強制的にコンソール・モードを選択することも可能

• コンソールコンソールコンソールコンソール・・・・モードモードモードモードでのでのでのでの抽出抽出抽出抽出ののののステップステップステップステップ

• コンソール・モードでの起動

• 動作設定、接続情報の入力

• テーブル一覧の生成

• テーブル一覧の編集(オプション)

• ソースDBからの抽出の実行

• ターゲットDBへの投入

コンソールモードによる IBM Data Movement Tool の実行

Page 40: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

40 © 2009 ISE Corporation

• コンソールモードでの起動後、抽出対象の選択や接続情報の入力を実施。入力する情報はGUIモードと同様

• 下記メッセージが出力されたタイミングで、テーブル一覧の生成が完了

• テーブル一覧を編集する場合は、ツールの実行を一旦保留して、別セッションからファイルの編集を行う

• コンソール・モードの場合、全スキーマのテーブルを含んだテーブル一覧が生成されるため、必要な表のみに絞ることを推奨

コンソールモードによる IBM Data Movement Tool の実行

$ ./IBMDataMovementTool.sh -consoleSwitching to Console Mode of operation[2009-06-07 10.11.04.838] INPUT Directory = ....Extract DDL (Yes) : 1Extract DDL (No) : 2Enter a number (Default=1) : 1Extract Data (Yes) : 1Extract Data (No) : 2Enter a number (Default=1) : 2

You can remove tables that you do not want to migrate by editing .tables fileDo you want to go ahead and extract data (Yes) : 1Quit Program : 2Enter a number (Default=1) : 1

Page 41: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

41 © 2009 ISE Corporation

• テーブル一覧の編集

• 行単位で必要な表のみ残すよう編集

• DDL抽出の再開

• テーブル一覧の編集完了後に、保留していたツールの実行を再開する

• このタイミングでDDL、データファイルの抽出が実行される

• IBMExtract.propertiesも同時に出力される

• DDL/データの投入

• 抽出完了後に、DDL/データの投入を実行するかを選択する

• 抽出のみ実行の場合、このタイミングでQuitを選択する

コンソールモードによる IBM Data Movement Tool の実行

$ cat orcl.tables"TUKI11G"."ACCOUNTS":SELECT * FROM "TUKI11G"."ACCOUNTS""TUKI11G"."CUSTOMERS":SELECT * FROM "TUKI11G"."CUSTOMERS""TUKI11G"."DEPARTMENTS":SELECT * FROM "TUKI11G"."DEPARTMENTS"

[2009-06-07 10.13.08.224] JAR file '/opt/ibm/db2/V9.7/java/db2jcc.jar' found[2009-06-07 10.13.08.225] JAR file '/opt/ibm/db2/V9.7/java/db2jcc_license_cu.jar' foundDo you want to go ahead and deploy data (Yes) : 1Quit Program : 2Enter a number (Default=1) : 2

Page 42: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

42 © 2009 ISE Corporation

ブランクブランクブランクブランク・・・・ページページページページ

Page 43: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

43 © 2009 ISE Corporation

IBM Optim Development Studio

を利用したオブジェクトの移行IBM Optim Development Studio

を利用したオブジェクトの移行

Page 44: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

44 © 2009 ISE Corporation

• 下記下記下記下記ののののオブジェクトオブジェクトオブジェクトオブジェクト作成作成作成作成はははは事前事前事前事前にににに実施実施実施実施するするするする

• レジストリー変数の設定

• データベースの作成

• バッファープール、表スペースの作成

IBM Optim Development Studio によるオブジェクトの移動

Page 45: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

45 © 2009 ISE Corporation

IBM Optim Development Studio によるオブジェクトの移動

• Oracle/DB2それぞれにそれぞれにそれぞれにそれぞれに接続接続接続接続するするするする

• 接続状態では、それぞれのデータソースでオブジェクトツリーが参照可能

• DB2側はLABDB、Oracle側はorclに接続している

Page 46: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

46 © 2009 ISE Corporation

IBM Optim Development Studio によるオブジェクトの移動

• ACCOUNTS表表表表をををを移動移動移動移動するするするする場合場合場合場合

• OracleデータソースからACCOUNTS表を選択し、“Copy”を選ぶ

Page 47: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

47 © 2009 ISE Corporation

• DB2データソース上で移行先のスキーマを作成する

IBM Optim Development Studio によるオブジェクトの移動

Page 48: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

48 © 2009 ISE Corporation

• DB2データソース上で、作成対象のスキーマにテーブルを“Paste”する

IBM Optim Development Studio によるオブジェクトの移動

Page 49: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

49 © 2009 ISE Corporation

• 移動時のオプションを設定する• DDLのみを移行する場合“Copy database objects only”を選択

• 少量データの場合、データを同時にコピーすることも可能(SELECT/INSERTに

よるコピーが行われる)

• オブジェクトの依存関係がある場合、“Copy dependent database objects” を選択

IBM Optim Development Studio によるオブジェクトの移動

Page 50: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

50 © 2009 ISE Corporation

• データ・タイプのマッピング

• ODSにはデータ・タイプのマッピングルールがデフォルトで設定されている。

• 元となるデータタイプごとにマッピング先のデータタイプを設定できる。

IBM Optim Development Studio によるオブジェクトの移動

Page 51: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

51 © 2009 ISE Corporation

• 生成されたDDLを確認後、Finishボタンを押してオブジェクトを作成する

• 以下の例では、ACCOUNTSテーブルと依存関係にあるDEPARTMENTS テーブルも作成されている

IBM Optim Development Studio によるオブジェクトの移動

Page 52: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

52 © 2009 ISE Corporation

• 実行結果を確認する (1/2)

• 画面右下に「SQL Result」が表示される

IBM Optim Development Studio によるオブジェクトの移動

Failed/Warningがある場合、Statusパネルから理由を確認

Page 53: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

53 © 2009 ISE Corporation

• 実行結果を確認する (2/2)

• DB2データソース上に、2つのテーブルが追加されている

IBM Optim Development Studio によるオブジェクトの移動

Page 54: Oracle 互換(後半) - IBM...NUMBER 1-31,1-31 NUMBER(p,s) 34桁以上では桁落ちが発生。NUMBER 32-38,0 DECFLOAT 文字列としての保持を検討 NUMBER 19-31,0 NUMBER(p,s)

54 © 2009 ISE Corporation

ブランクブランクブランクブランク・・・・ページページページページ