次の表は、SQL Anywhere および Ultra Light のリモートデータ型がどのように Adaptive Server Enterprise の統合データ型にマッピングされるのかを示します。たとえば、リモートデータベースの LONG VARCHAR 型のカラムは、統合データベースでは TEXT 型である必要があります。
最大カラム長 (MCL) は、Adaptive Server Enterprise のぺージサイズによって異なります。ページサイズが 2K の場合、MCL は 1954 になります。ページサイズが 4K の場合、MCL は 4002 になります。MCL の詳細については、Adaptive Server Enterprise のマニュアルを参照してください。
SQL Anywhere または Ultra Light のデータ型 | Adaptive Server Enterprise データ型 | 注意 |
---|---|---|
BIGINT |
BIGINT |
|
BIT |
BIT |
|
BINARY(n=<MCL) |
BINARY(n) |
|
BINARY(n>MCL) |
IMAGE |
|
CHAR(n=<MCL) |
VARCHAR(n) |
|
CHAR(n>MCL) |
TEXT |
ダウンロード時に、値が長すぎないようにします。 |
DATE |
DATE |
Adaptive Server Enterprise の DATETIME では、年は 1753 ~ 9999 の範囲内である必要があります。 SQL Anywhere と Ultra Light では、時刻の値は 00:00:00 の形式である必要があります。 |
DATETIME |
DATETIME1 または BIGDATETIME2 |
Adaptive Server Enterprise の DATETIME 値は 1/300 秒の精度です。小数点以下の秒の末尾の数字は 0、3、6 のいずれかになります。その他の数字はこの 3 つのいずれかに丸められます。具体的には、0 と 1 は 0 に、2 と 3 と 4 は 3 に、5 と 6 と 7 と 8 は 6 に、9 は 10 に丸められます。 ダウンロード時には、SQL Anywhere は Adaptive Server Enterprise からの元の値を保持しますが、アップロード時には、値は元の値と完全には一致しないことがあります。 DATETIME をプライマリキーに使用すると、競合を解決できないことがあります。DATETIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。また、年は 1753 ~ 9999 の範囲内である必要があります。 |
DECIMAL(p<39, s) |
DECIMAL(p,s) |
Adaptive Server Enterprise の NUMERIC の精度は 1 ~ 38 桁 (p<39) です。 |
DECIMAL(p>=39,s) |
Adaptive Server Enterprise には対応するデータ型がありません。 |
|
DOUBLE |
DOUBLE PRECISION |
|
FLOAT(p) |
FLOAT(p) |
|
IMAGE |
IMAGE |
|
INTEGER |
INTEGER |
|
LONG BINARY |
IMAGE |
|
LONG NVARCHAR |
UNITEXT |
|
LONG VARBIT |
TEXT |
|
LONG VARCHAR |
TEXT |
|
MONEY |
MONEY |
|
NCHAR(c=<MCL) |
UNIVARCHAR(c/2) |
|
NCHAR(c>MCL) |
UNITEXT |
ダウンロード時に、値が長すぎないようにします。 |
NTEXT |
UNITEXT |
|
NUMERIC(p<39,s) |
NUMERIC(p,s) |
Adaptive Server Enterprise の 10 進数の精度は 1 ~ 38 桁 (p<39) です。 |
NUMERIC(p>=39,s) |
Adaptive Server Enterprise には対応するデータ型がありません。 |
|
NVARCHAR(c=<MCL) |
UNIVARCHAR(c/2) |
|
NVARCHAR(c>MCL) |
UNIVARCHAR(c/2) |
|
REAL |
REAL |
|
SMALLDATETIME |
DATETIME1 または BIGDATETIME2 |
SQL Anywhere と Ultra Light の SMALLDATETIME は TIMESTAMP として実装されます。 Adaptive Server Enterprise の DATETIME は分の精度です。29.998 秒以下の値は直近の分に切り捨てられます。29.999 秒以上の値は直近の分に切り上げられます。SQL Anywhere と Ultra Light の SMALLDATETIME はミリ秒の精度です。正常に同期させるには、SQL Anywhere または Ultra Light の SMALLDATETIME の丸め単位を分にしてください。また、年は 1753 ~ 9999 の範囲内である必要があります。 |
SMALLINT |
SMALLINT |
|
SMALLMONEY |
SMALLMONEY |
|
TEXT |
TEXT |
|
TIME |
TIME1 または BIGTIME2 |
Adaptive Server Enterprise の TIME 値は 1/300 秒の精度です。小数点以下の秒の末尾の数字は 0、3、6 のいずれかになります。その他の数字はこの 3 つのいずれかに丸められます。具体的には、0 と 1 は 0 に、2 と 3 と 4 は 3 に、5 と 6 と 7 と 8 は 6 に、9 は 10 に丸められます。ダウンロード時には、SQL Anywhere は Adaptive Server Enterprise からの元の値を保持しますが、アップロード時には、値は元の値と完全には一致しないことがあります。TIME をプライマリキーに使用すると、競合を解決できないことがあります。TIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。 |
TIMESTAMP |
DATETIME1 または BIGDATETIME2 |
Adaptive Server Enterprise の DATETIME 値は 1/300 秒の精度です。小数点以下の秒の末尾の数字は 0、3、6 のいずれかになります。その他の数字はこの 3 つのいずれかに丸められます。具体的には、0 と 1 は 0 に、2 と 3 と 4 は 3 に、5 と 6 と 7 と 8 は 6 に、9 は 10 に丸められます。 ダウンロード時には、SQL Anywhere は Adaptive Server Enterprise からの元の値を保持しますが、アップロード時には、値は元の値と完全には一致しないことがあります。 DATETIME をプライマリキーに使用すると、競合を解決できないことがあります。DATETIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。また、年は 1753 ~ 9999 の範囲内である必要があります。 |
TIMESTAMP WITH TIME ZONE | VARCHAR(34) | Adaptive Server Enterprise には対応するデータ型がありません。したがって、TIMESTAMP WITH TIME ZONE カラムを VARCHAR(34) カラムにマッピングする必要があります。アップロード時、Mobile Link サーバは、まずデータを YYYY-MM-DD HH:NN:SS.SSSSSS [+|-]HH:NN フォーマットの文字列に変換してから統合データベースに適用します。ダウンロード時は、データを文字列から TIMESTAMP WITH TIME ZONE に変換します。統合データベース内のデータがこのフォーマットに従っていない場合は、ダウンロードが失敗します。 |
TINYINT |
TINYINT |
|
UNIQUEIDENTIFIER |
CHAR(36) |
|
UNIQUEIDENTIFIERSTR |
CHAR(36) |
UNIQUEIDENTIFIERSTR は使用しないでください。代わりに UNIQUEIDENTIFIER を使用してください。 |
UNSIGNED BIGINT |
UNSIGNED BIGINT |
|
UNSIGNED INTEGER |
UNSIGNED INT |
|
UNSIGNED SMALLINT |
UNSIGNED SMALLINT |
|
UNSIGNED TINYINT |
TINYINT |
|
VARBINARY(n=<MCL) |
VARBINARY |
|
VARBINARY(n>MCL) |
IMAGE |
|
VARBIT(n=<MCL) |
VARCHAR(n) |
|
VARBIT(n>MCL) |
TEXT |
|
VARCHAR(n=<MCL) |
VARCHAR(n) |
|
VARCHAR(n>MCL) |
TEXT |
|
XML |
TEXT |
1 バージョン 15.5 より前の Adaptive Server Enterprise のみに該当します。
2 バージョン 15.5 以降の Adaptive Server Enterprise のみに該当します。
次の表は、Adaptive Server Enterprise の統合データ型がどのように SQL Anywhere および Ultra Light のリモートデータ型にマッピングされるのかを示します。たとえば、統合データベースの DOUBLE PRECISION 型のカラムは、リモートデータベースでは DOUBLE 型である必要があります。
Adaptive Server Enterprise データ型 | SQL Anywhere または Ultra Light のデータ型 | 説明 |
---|---|---|
BIGINT |
BIGINT |
|
BIGDATETIME1 |
TIMESTAMP |
|
BIGTIME1 |
TIME |
|
BINARY(n) |
BINARY(n) |
|
BIT |
BIT |
|
CHAR(n) |
VARCHAR(n) |
SQL Anywhere の CHAR/NCHAR は、Adaptive Server Enterprise の CHAR/NCHAR と同等ではありません。SQL Anywhere の CHAR/NCHAR に対応するのは、VARCHAR/NVARCHAR です。同期される統合データベースのカラムでは、CHAR/NCHAR を使用しないでください。SQL Anywhere 以外の CHAR/NCHAR を使用する必要がある場合は、-b オプションを指定して Mobile Link サーバを実行してください。 |
DATE |
DATE |
SQL Anywhere と Ultra Light では、時刻の値は 00:00:00 の形式である必要があります。 |
DATETIME |
DATETIME |
Adaptive Server Enterprise の DATETIME 値は 1/300 秒の精度です。小数点以下の秒の末尾の数字は 0、3、6 のいずれかになります。その他の数字はこの 3 つのいずれかに丸められます。具体的には、0 と 1 は 0 に、2 と 3 と 4 は 3 に、5 と 6 と 7 と 8 は 6 に、9 は 10 に丸められます。 ダウンロード時には、SQL Anywhere は Adaptive Server Enterprise からの元の値を保持しますが、アップロード時には、値は元の値と完全には一致しないことがあります。競合は解決できない場合があります。DATETIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。また、年は 1753 ~ 9999 の範囲内である必要があります。 |
DECIMAL(p,s) |
DECIMAL(p,s) |
|
DOUBLE PRECISION |
DOUBLE |
|
FLOAT(p) |
FLOAT(p) |
|
IMAGE |
LONG BINARY |
|
INT |
INT |
|
MONEY |
MONEY |
|
NCHAR(n) |
VARCHAR(n) |
Adaptive Server Enterprise の NCHAR と NVARCHAR は、SQL Anywhere の NCHAR と NVARCHAR とは異なり、マルチバイトの各国の文字列を格納します。マルチバイト環境では、SQL Anywhere または Ultra Light の VARCHAR を使用してください。 |
NUMERIC(p,s) |
NUMERIC(p,s) |
|
NVARCHAR(n) |
VARCHAR(n) |
Adaptive Server Enterprise の NCHAR と NVARCHAR は、SQL Anywhere の NCHAR と NVARCHAR とは異なり、マルチバイトの各国の文字列を格納します。マルチバイト環境では、SQL Anywhere または Ultra Light の VARCHAR を使用してください。 |
REAL |
REAL |
|
SMALLDATETIME |
SMALLDATETIME |
SQL Anywhere と Ultra Light の SMALLDATETIME は TIMESTAMP として実装されます。 Adaptive Server Enterprise の SMALLDATETIME は分の精度です。29.998 秒以下の値は直近の分に切り捨てられます。29.999 秒以上の値は直近の分に切り上げられます。SQL Anywhere と Ultra Light の SMALLDATETIME はミリ秒の精度です。正常に同期させるには、SQL Anywhere または Ultra Light の SMALLDATETIME の丸め単位を分にしてください。また、年は 1900 ~ 2078 の範囲内である必要があります。 |
SMALLINT |
SMALLINT |
|
SMALLMONEY |
SMALLMONEY |
|
TEXT |
LONG VARCHAR |
|
TIME |
TIME |
Adaptive Server Enterprise の TIME 値は 1/300 秒の精度です。小数点以下の秒の末尾の数字は 0、3、6 のいずれかになります。その他の数字はこの 3 つのいずれかに丸められます。具体的には、0 と 1 は 0 に、2 と 3 と 4 は 3 に、5 と 6 と 7 と 8 は 6 に、9 は 10 に丸められます。 ダウンロード時には、SQL Anywhere は Adaptive Server Enterprise からの元の値を保持しますが、アップロード時には、値は元の値と完全には一致しないことがあります。競合は解決できない場合があります。TIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。 |
TIMESTAMP |
VARBINARY(8) |
Adaptive Server Enterprise 内では、TIMESTAMP はローが変更されるたびに増分されるバイナリカウンタです。各テーブルに存在できる TIMESTAMP カラムは 1 つのみであるため、TIMESTAMP カラムを同期する意味はありません。同期に含める必要がある場合は、SQL Anywhere または Ultra Light の VARBINARY(8) データ型にマッピングします。 この TIMESTAMP カラムはサーバによって維持されるため、明示的に挿入および更新することはできません。このようなカラムがあるテーブルのアップロードスクリプトを実装する場合は、このことを念頭に置いてください。 |
TINYINT |
TINYINT |
|
UNSIGNED BIGINT |
UNSIGNED BIGINT |
|
UNSIGNED INT |
UNSIGNED INT |
|
UNSIGNED SMALLINT |
UNSIGNED SMALLINT |
|
VARBINARY(n) |
VARBINARY(n) |
|
VARCHAR(n) |
VARCHAR(n) |
|
UNICHAR(n) |
NVARCHAR(n) |
Ultra Light では使用できません。 |
UNITEXT |
LONG NVARCHAR |
Ultra Light では使用できません。 |
UNIVARCHAR(n) |
NVARCHAR(n) |
Ultra Light では使用できません。 |
1 バージョン 15.5 以降の Adaptive Server Enterprise のみに該当します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |