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 データ・マッピング

 

Oracle データのマッピング

Oracle の統合データ型へのマッピング

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

SQL Anywhere または Ultra Light のデータ型

Oracle データ型

注意

BIGINT

NUMBER(20)

BINARY(n<=2000)

RAW(n)

BINARY(n>2000)

BLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

BIT

NUMBER(1)

CHAR(n<=4000)

VARCHAR2(n byte)

Oracle の VARCHAR2 を使用すると、バイト数または文字数の最大値を指定できます。VARCHAR2 データの最大長は 4000 バイトです。文字数を指定する場合は、データの最大長が 4000 バイトを超えないようにしてください。

CHAR(n>4000)

CLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

DATE

DATE2 または TIMESTAMP

Oracle の DATE データ型には小数点以下の秒がないので、このデータ型を使用すると SQL Anywhere または Ultra Light の小数点以下の秒を保持できません。問題を回避するには、小数点以下の秒を使用しないでください。年は、1 ~ 9999 の範囲内である必要があります。

Interactive SQL ユーティリティを使用する場合は、Return_date_time_as_string オプションをオフにしてから、SQL 文を実行します。

DATETIME

DATE2 または TIMESTAMP

Oracle の DATE データ型には小数点以下の秒がないので、このデータ型を使用すると SQL Anywhere または Ultra Light の小数点以下の秒を保持できません。問題を回避するには、小数点以下の秒を使用しないでください。年は、1 ~ 9999 の範囲内である必要があります。

Interactive SQL ユーティリティを使用する場合は、Return_date_time_as_string オプションをオフにしてから、SQL 文を実行します。

DECIMAL(p<=38,s)

NUMBER(p, 0<=s<=38)

SQL Anywhere の DECIMAL では、p は 1 ~ 127 で、s は常に p 以下です。Oracle の NUMBER では、p は 1 ~ 38 で、s は -84 ~ 127 です。同期させるには、Oracle の NUMBER の位取りを 0 ~ 38 に制限する必要があります。

DECIMAL(p>38,s)

Oracle のデータ型に対応するデータ型がありません。

DOUBLE

DOUBLE PRECISION または BINARY_DOUBLE1

Oracle 10g の BINARY_FLOAT と BINARY_DOUBLE の特別な値 INF、-INF、NAN は、SQL Anywhere または Ultra Light とは同期できません。

FLOAT(p)

FLOAT(p)

IMAGE

BLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

INTEGER

INT

LONG BINARY

BLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

LONG NVARCHAR

NCLOB

Oracle の CLOB と NCLOB は、最大で 4G のデータを保持できます。SQL Anywhere の LONG VARCHAR と LONG NVARCHAR が保持できるのは 2G までです。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

LONG VARBIT

CLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

LONG VARCHAR

CLOB

Oracle の CLOB と NCLOB は、最大で 4G のデータを保持できます。SQL Anywhere の LONG VARCHAR と LONG NVARCHAR が保持できるのは 2G までです。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

MONEY

NUMBER(19,4)

NCHAR(c)

NVARCHAR2(c char) または NCLOB

SQL Anywhere の NCHAR と Oracle の NVARCHAR2 では、サイズは Unicode 文字の最大文字数を示します。Oracle の NVARCHAR2 のデータ長が 4000 バイトを超えることはできません。文字サイズから最大バイト長を計算することは困難です。一般的に、サイズが 1000 を超える場合は NCLOB に、そうでない場合は NVARCHAR2 に、それぞれマッピングします。

NTEXT

NCLOB

Oracle の NCLOB は、最大で 4G のデータを保持できます。SQL Anywhere の NTEXT (または LONG NVARCHAR) が保持できるのは 2G までです。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

NUMERIC(p<=38,s)

NUMBER(p, 0<=s<=38)

SQL Anywhere の NUMERIC では、p は 1 ~ 127 で、s は常に p 以下です。Oracle の NUMBER では、p は 1 ~ 38 で、s は -84 ~ 127 です。同期させるには、Oracle の NUMBER の位取りを 0 ~ 38 に制限する必要があります。

NUMERIC(p>38,s)

Oracle のデータ型に対応するデータ型がありません。

NVARCHAR

NVARCHAR2(c char) または NCLOB

SQL Anywhere の NCHAR と Oracle の NVARCHAR2 では、サイズは Unicode 文字の最大文字数を示します。Oracle の NVARCHAR2 のデータ長が 4000 バイトを超えることはできません。文字サイズから最大バイト長を計算することは困難です。一般的に、サイズが 1000 を超える場合は NCLOB に、そうでない場合は NVARCHAR2 に、それぞれマッピングします。

REAL

REAL または BINARY_FLOAT1

Oracle 10g の BINARY_FLOAT と BINARY_DOUBLE の特別な値 INF、-INF、NAN は、SQL Anywhere または Ultra Light とは同期できません。

SMALLDATETIME

DATE2 または TIMESTAMP

Oracle の DATE データ型には小数点以下の秒がないので、このデータ型を使用すると SQL Anywhere または Ultra Light の小数点以下の秒を保持できません。問題を回避するには、小数点以下の秒を使用しないでください。年は、1 ~ 9999 の範囲内である必要があります。

SMALLINT

NUMBER(5)

SMALLMONEY

NUMBER(10,4)

TEXT

CLOB

Oracle の CLOB は、最大で 4G のデータを保持できます。SQL Anywhere の TEXT (または LONG VARCHAR) が保持できるのは 2G までです。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

TIME

DATE2 または TIMESTAMP

Oracle の DATE データ型には小数点以下の秒がないので、このデータ型を使用すると SQL Anywhere または Ultra Light の小数点以下の秒を保持できません。問題を回避するには、小数点以下の秒を使用しないでください。

Interactive SQL ユーティリティを使用する場合は、Return_date_time_as_string オプションをオフにしてから、SQL 文を実行します。

TIMESTAMP

DATE2 または TIMESTAMP

Oracle の DATE データ型には小数点以下の秒がないので、このデータ型を使用すると SQL Anywhere または Ultra Light の小数点以下の秒を保持できません。問題を回避するには、小数点以下の秒を使用しないでください。年は、1 ~ 9999 の範囲内である必要があります。

Interactive SQL ユーティリティを使用する場合は、Return_date_time_as_string オプションをオフにしてから、SQL 文を実行します。

TINYINT

NUMBER(3)

ダウンロードの場合、Oracle の値は負でない必要があります。

UNSIGNED BIGINT

NUMBER(20)

ダウンロードの場合、Oracle の値は負でない必要があります。

UNSIGNED INTEGER

NUMBER(11)

ダウンロードの場合、Oracle の値は負でない必要があります。

UNSIGNED SMALLINT

NUMBER(5)

ダウンロードの場合、Oracle の値は負でない必要があります。

UNSIGNED TINYINT

NUMBER(3)

ダウンロードの場合、Oracle の値は負でない必要があります。

UNIQUEIDENTIFIER

CHAR(36)

UNIQUEIDENTIFIERSTR

CHAR(36)

UNIQUEIDENTIFIERSTR の Oracle での使用はおすすめしません。代わりに UNIQUEIDENTIFIER を使用してください。

VARBINARY(n<=2000)

RAW(n)

VARBINARY(n>2000)

BLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

VARBIT(n<=4000)

VARCHAR2(n byte)

VARBIT(n>4000)

CLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

VARCHAR(n<=4000)

VARCHAR2(n byte)

Oracle の VARCHAR2 を使用すると、バイト数または文字数の最大値を指定できます。VARCHAR2 データの最大長は 4000 バイトです。文字数を指定する場合は、データの最大長が 4000 バイトを超えないようにしてください。

VARCHAR(n>4000)

CLOB

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

XML

CLOB

Oracle の CLOB と NCLOB は、最大で 4G のデータを保持できます。SQL Anywhere の XML が保持できるのは 2G までです。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

1 Oracle バージョン 10g 以降にのみ該当します。

2 Oracle バージョン 8i 以降にのみ該当します。

注意

LONG データ型は、Oracle 8、8i、9i では使用されなくなりました。

Oracle の LONG データ型を正常に同期させるには、iAnywhere Solutions Oracle ODBC ドライバの [ODBC データ・ソース設定] ウィンドウで [Oracle Force Retrieval Of Long Columns] のオプションを確認します。

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

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

Oracle データ型 SQL Anywhere または Ultra Light のデータ型 注意

BFILE

LONG BINARY

ダウンロードのみ。

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

BINARY_DOUBLE

DOUBLE

BINARY_FLOAT の特別な値 INF、-INF、NAN は、SQL Anywhere または Ultra Light とは同期できません。Oracle の FLOAT と DOUBLE の精度は、SQL Anywhere と Ultra Light のものとは異なります。精度によっては、データの値が変わる可能性があります。

BINARY_FLOAT

REAL

BINARY_FLOAT の特別な値 INF、-INF、NAN は、SQL Anywhere または Ultra Light とは同期できません。Oracle の FLOAT と DOUBLE の精度は、SQL Anywhere と Ultra Light のものとは異なります。精度によっては、データの値が変わる可能性があります。

BLOB

LONG BINARY

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

CHAR(n byte)

VARCHAR(n)

SQL Anywhere の CHAR は、Oracle の CHAR と同等ではありません。SQL Anywhere の CHAR に対応するのは VARCHAR です。同期される統合データベースのカラムでは、CHAR/NCHAR を使用しないでください。SQL Anywhere 以外の CHAR を使用する必要がある場合は、-b オプションを指定して Mobile Link サーバを実行してください。

SQL Anywhere または Ultra Light の値が Oracle の値より長い可能性があるので、アップロード時には値が大きすぎないことを確認してください。

CLOB

LONG VARCHAR

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

DATE

TIMESTAMP

年は、1 ~ 9999 の範囲内である必要があります。

INTERVAL YEAR(year_precision) TO MONTH

SQL Anywhere または Ultra Light のデータ型に対応するデータ型がありません。

INTERVAL DAY(day_precision) TO SECOND(p)

SQL Anywhere または Ultra Light のデータ型に対応するデータ型がありません。

LONG

LONG VARCHAR

LONG RAW

LONG BINARY

NCHAR(c char)

NVARCHAR(c)

SQL Anywhere の NCHAR は、Oracle の NCHAR と同等ではありません。SQL Anywhere の NCHAR に対応するのは NVARCHAR です。同期される統合データベースのカラムでは、NCHAR を使用しないでください。SQL Anywhere 以外の NCHAR を使用する必要がある場合は、-b オプションを指定して Mobile Link サーバを実行してください。

SQL Anywhere または Ultra Light の値が Oracle の値より長い可能性があるので、アップロード時には値が大きすぎないことを確認してください。

NCLOB

LONG NVARCHAR

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

Oracle の値が SQL Anywhere または Ultra Light の値より長い可能性があるので、ダウンロード時には値が大きすぎないことを確認してください。

NUMBER(p,s)

NUMBER(p,s)

SQL Anywhere の NUMBER では、p は 1 ~ 127 であり、s は常に p 以下です。Oracle の NUMBER では、p は 1 ~ 38 であり、s は -84 ~ 127 です。同期させるには、Oracle の NUMBER の位取りを 0 ~ 38 にしてください。

NVARCHAR2(c char)

NVARCHAR(c)

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

SQL Anywhere または Ultra Light の値が Oracle の値より長い可能性があるので、アップロード時には値が大きすぎないことを確認してください。

RAW

BINARY

SQL Anywhere または Ultra Light の値が Oracle の値より長い可能性があるので、アップロード時には値が大きすぎないことを確認してください。

ROWID

VARCHAR(64)

UROWID と ROWID は読み込み専用なので、同期対象になることはほとんどありません。

TIMESTAMP(p<=6)

TIMESTAMP

p<6 の場合、SQL Anywhere または Ultra Light の値が同じ精度になっていることを確認する必要があります。そうしないと、競合を検出できなかったり、ローの重複が発生したりする可能性が生じます。年は、1 ~ 9999 の範囲内である必要があります。

TIMESTAMP(p>6)

SQL Anywhere または Ultra Light のデータ型に対応するデータ型がありません。

TIMESTAMP(p) WITH LOCAL TIME ZONE

SQL Anywhere または Ultra Light のデータ型に対応するデータ型がありません。

TIMESTAMP(p) WITH TIME ZONE

SQL Anywhere または Ultra Light のデータ型に対応するデータ型がありません。

UROWID

VARCHAR(64)

UROWID と ROWID は読み込み専用なので、同期対象になることはほとんどありません。

VARCHAR2(n byte)

VARCHAR(n)

SQL Anywhere または Ultra Light の値が Oracle の値より長い可能性があるので、アップロード時には値が大きすぎないことを確認してください。