Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ管理 » Mobile Link リファレンス » リモート・データベースと統合データベース間での Mobile Link データ・マッピング

 

Adaptive Server Enterprise データのマッピング

Adaptive Server Enterprise の統合データ型へのマッピング

次の表は、SQL Anywhere および Ultra Light のリモート・データ型がどのように Adaptive Server Enterprise の統合データ型にマッピングされるのかを示します。たとえば、リモート・データベースの FLOAT 型のカラムは、統合データベースでは REAL 型である必要があります。

最大カラム長 (MCL) は、Adaptive Server Enterprise のぺージ・サイズによって異なります。ページ・サイズが 2K の場合、MCL は 1954 になります。ページ・サイズが 4K の場合、MCL は 4002 になります。MCL の詳細については、Adaptive Server Enterprise のマニュアルを参照してください。

SQL Anywhere または Ultra Light のデータ型 Adaptive Server Enterprise データ型 注意

BIGINT

NUMERIC(20)1 または BIGINT2

BIT

BIT

BINARY(n=<MCL)

BINARY(n)

BINARY(n>MCL)

IMAGE

CHAR(n=<MCL)

VARCHAR(n)

CHAR(n>MCL)

TEXT

ダウンロード時に、値が長すぎないようにします。

DATE

DATE3 または DATETIME4

Adaptive Server Enterprise の DATETIME では、年は 1753 ~ 9999 の範囲内である必要があります。

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 をプライマリ・キーに使用すると、競合を解決できないことがあります。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)

NVARCHAR(c=<MCL)

UNIVARCHAR(c/2)

NVARCHAR(c>MCL)

UNITEXT

ダウンロード時に、値が長すぎないようにします。

REAL

REAL

SMALLDATETIME

DATETIME4

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

TIME3 または DATETIME4

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

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 をプライマリ・キーに使用すると、競合を解決できないことがあります。DATETIME を正常に同期させるには、秒の小数点以下の丸め単位を 10 ミリ秒にすることをおすすめします。また、年は 1753 ~ 9999 の範囲内である必要があります。

TINYINT

TINYINT

UNIQUEIDENTIFIER

CHAR(36)

UNIQUEIDENTIFIERSTR

CHAR(36)

UNIQUEIDENTIFIERSTR は使用しないでください。代わりに UNIQUEIDENTIFIER を使用してください。

UNSIGNED BIGINT

NUMERIC(20)1 または UNSIGNED BIGINT2

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.0 より前の Adaptive Server Enterprise のみに該当します。

2 バージョン 15.0 以降の Adaptive Server Enterprise のみに該当します。

3 バージョン 12.5.1 以降の Adaptive Server Enterprise のみに該当します。

4 バージョン 12.5.1 より前の Adaptive Server Enterprise のみに該当します。

SQL Anywhere または Ultra Light のリモート・データ型へのマッピング

次の表は、Adaptive Server Enterprise の統合データ型がどのように SQL Anywhere および Ultra Light のリモート・データ型にマッピングされるのかを示します。たとえば、統合データベースの DOUBLE PRECISION 型のカラムは、リモート・データベースでは DOUBLE 型である必要があります。

Adaptive Server Enterprise データ型 SQL Anywhere または Ultra Light のデータ型 注意

BIGINT1

BIGINT

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 BIGINT1

UNSIGNED BIGINT

UNSIGNED INT1

UNSIGNED INT

UNSIGNED SMALLINT1

UNSIGNED SMALLINT

VARBINARY(n)

VARBINARY(n)

VARCHAR(n)

VARCHAR(n)

UNICHAR(n)

NVARCHAR(n)

Ultra Light では使用できません。

UNITEXT1

LONG NVARCHAR

Ultra Light では使用できません。

UNIVARCHAR(n)

NVARCHAR(n)

Ultra Light では使用できません。

1 バージョン 15.0 より前の Adaptive Server Enterprise のみに該当します。