データ型に関するルールとガイドライン
データ型と変換には以下のルールおよびガイドラインを使用します。
- • フラットファイルのすべてのフィールドのデフォルトのデータ型はNstring(255)です。
データ型を変更する必要がある場合は、[メタデータの編集]オプションを使用して、フィールドのネイティブタイプまたは精度を編集します。
- • ソースフィールドとターゲットフィールド間または式とターゲットフィールドの出力間で互換性のないデータ型をマッピングした場合、タスクは予期しない結果になる可能性があります。
例えば、同期タスクでMySQLデータベースソースの日時カラムをSalesforceターゲットの整数カラムにマッピングした場合、同期タスクは失敗します。
- • 精度が28を超える数値データは、ターゲットに書き込まれるときに精度15に切り詰められます。
例えば、4567823451237864532451.12345678 はターゲットに4567823451237864000000.00000000として書き込まれる可能性があります。
- • 以下のデータ型とデータベースタイプのソースフィールドをSalesforceターゲットにマッピングした場合、同期タスクは失敗します。
データ型 | データベースタイプ |
---|
tinyint | MySQL |
tinyint | SQL Server |
interval year to month | Oracle |
interval day to second | Oracle |
rowid | Oracle |
urowid | Oracle |
- • ほとんどの場合、レプリケーションタスクはソースと同じ精度とスケールをターゲットに作成します。それ以外の場合、レプリケーションタスクは異なる精度またはスケールを使用します。
- - 場合によっては、レプリケーションタスクが精度またはスケールを指定せず、データベースがデフォルトを使用することがあります。例えば、ソースがMySQLでソースのデータ型がDouble(12)とします。レプリケーションタスクはOracleターゲットにNumberデータ型を作成し、精度を指定しません。
- - ソースがOracleではなくターゲットがOracle、ソースのデータ型がnchar、nvarchar、またはnclobの場合、アプリケーションはソースフィールドの精度を2倍(最大64000)にし、ターゲットファイルの精度を取得します。
- - ソースがMySQLでターゲットがMicrosoft SQL Server 2000または2005、ソースのデータ型が日付または時刻の場合、ターゲットフィールドのデータ型はTimestamp(23, 3)になります。
- • レプリケーションタスクがMySQLのデータをフラットファイルに書き込み、ソースに時刻データが含まれる場合、データ統合は時刻データをdate/timeデータ型に変換します。このとき、日付は現在日付、時刻はソースで指定された時刻になります。
式で文字列関数を使用して、フラットファイルをロードする前に日付を削除できます。
- •ソースまたはターゲットがOracleの場合、Numberフィールドの精度はスケール以上にする必要があります。そうでない場合、タスクは失敗します。
- • 同期タスクがSalesforceからスケールのない17桁または18桁の数値データをNumberデータ型のOracleカラムに書き込むと、タスクはターゲットに予期しない出力を生成する可能性があります。
例えば、同期タスクはSalesforceの値67890123456789045をOracleターゲットに67890123456789048として書き込みます。
- •OracleデータベースターゲットでODBC接続を使用する場合、Oracleテーブルカラムの最大精度がchar(1999)、varchar(3999)、nvarchar(3998)、nchar(3998)を超えていないことを確認します。
- •データがMicrosoft SQL ServerのRealデータ型のソースフィールドから取得される場合、タスクはターゲットに破損データをロードする可能性があります。