PowerReplication ユーザーズガイド V3.0 - Microsoft(R) Windows(R) 2000, Microsoft(R) Windows Server(TM) 2003 - |
目次
索引
![]() ![]() |
第2章 PowerReplicationの機能と仕組み | > 2.3 レプリケーションサービスの仕組み |
PowerReplicationは、DBMS間で異なるデータ型を変換して同期処理を行います。ここでは、異なるDBMS間でデータ型を変換する仕組みを説明します。
PowerReplicationは、異なるDBMS間で項目の値を維持して反映するためデータ型をODBCのSQLデータ型に変換して同期処理を行います。
Oracleのデータ型は、以下のODBCのSQLデータ型に変換されます。
Oracleのデータ型 |
変換するODBCのSQLデータ型 |
NUMBER(p,q) |
SQL_NUMERICまたはSQL_INTEGER※ |
CHAR |
SQL_CHAR |
DATE |
SQL_TIMESTAMP |
※)OracleのNUMBER型がp=38、q=0の場合、ODBCのSQLデータ型はSQL_INTEGERに変換
SQL Serverのデータ型は、以下のODBCのSQLデータ型に変換されます。
SQL Serverのデータ型 |
変換するODBCのSQLデータ型 |
numeric |
SQL_NUMERIC |
decimal |
SQL_DECIMAL |
int |
SQL_INTEGER |
smallint |
SQL_SMALLINT |
real |
SQL_REAL |
float |
SQL_FLOAT |
char |
SQL_CHAR |
datetime |
SQL__TIMESTAMP |
PowerRW+のデータ型は、ODBCのSQLデータ型に変換しません。PowerRW+のSQL型として同期処理を行います。
物理ファイルの項目属性 |
SQLのデータ型 |
外部10進数字項目 |
NUMERIC |
内部10進数字項目 |
DECIMAL |
符号付4バイト2進数字項目 |
INTEGER |
符号付2バイト2進数字項目 |
SMALLINT |
単精度浮動小数点項目 |
FLOAT |
倍精度浮動小数点項目 |
DOUBLE PRECISION |
英数字項目 |
CHARACTER |
日本語項目 |
NATIONAL CHARACTER |
− |
DATE |
ODBCのSQLデータ型の詳細は、「Microsoft ODBC プログラマーズリファレンス」を参照してください。
DBMS間のデータ型の対応づけは、"付録D データ型対応づけの仕組み"を参照してください。
相手サーバから転送されたデータに、反映先のデータベースに変換できないデータ(不正データ)が含まれる場合、不正データは補正して反映されます。
変換できない文字コードが検出された場合は、‘_'(アンダーバー)に置き換えて同期が続行されます。
文字コードとして有効でないデータが検出された場合、同期はエラーとなり、中断されます。
Symfoware6000と連携する場合、数値項目(NUMERIC、DECIMAL)に不正コードが含まれていると、不正データはSymfoware6000の機能によって数値データが置き換えられます。
不正データを補正できず、エラーとなった場合、エラーとなったデータの主キーの値が詳細メッセージ情報ファイルに出力されます。
詳細メッセージ情報ファイルの内容は、"付録F 詳細メッセージ情報ファイルの出力形式"を参照してください。
主キーの値に不正データが含まれていると値が補正され、重複データとなる場合があります。
この場合、反映元のデータファイルを修正して、一括同期を実行することが必要です。
文字列データの後ろに詰められた空白(後方空白)は、以下のように扱われます。
データを評価※するとき、半角の後方空白は削除して評価されます。全角の後方空白は削除せずに評価されます。
データファイルへの反映では、項目の長さに合わせて半角の後方空白が詰められます。このとき、反映するデータに全角の後方空白が含まれていると、半角空白に置き換えられます。
データを評価※するとき、利用者プログラムなどで明に書き込んだ後方空白を含めて評価されます。
データファイルへの反映では、後方空白は削除されます。
データを評価※するとき、半角の後方空白は削除して評価されます。全角の後方空白は削除せずに評価されます。
データファイルへの反映では、項目の長さに合わせて半角の後方空白が詰められます。このとき、反映するデータに全角の後方空白が含まれていると、全角空白のまま反映されます。
データを評価※するとき、全角の後方空白は削除して評価されます。
データファイルへの反映では、項目の長さに合わせて全角の後方空白が詰められます。このとき、反映するデータに半角の後方空白が含まれていると、全角空白に置き換えられます。
※)主キー、抽出条件、競合発生を評価することを示します。
上記のように使用するDBMSによって全角の後方空白に対する扱い方が異なるため、全角の後方空白により競合が発生する場合があります。
後方空白による競合の発生を防止するため、同じデータ型を関連づけてください。また、利用者プログラムでは、全角の後方空白を入力しないでください。
反映元(PowerRW+またはSymfoware6000)のデータファイルに全角空白だけの文字列データを入力して同期を実行すると、反映先(OracleまたはSQL Server)では全角空白1文字と残りすべて半角空白になります。
目次
索引
![]() ![]() |