サポートされているSQL Serverデータ型
次にあげた制限事項に特に記載がないかぎり、キャプチャと配信で次のデータ型がサポートされます。
-
バイナリ・データ型
-
(binary, varbinary, varbinary (max))
-
(varbinary (max)
(FILESTREAMを指定))
-
-
文字データ型
-
(char, nchar, nvarchar, nvarchar (max), varchar, varchar (max))
-
-
日付および時間データ型
-
(date, datetime2, datetime, datetimeoffset, smalldatetime, time)
-
-
数値データ型
-
(bigint, bit, decimal, float, int, money, numeric, real, smallint, smallmoney, tinyint)
-
-
LOB
-
(image, ntext, text)
-
-
その他のデータ型
-
(timestamp, uniqueidentifier, hierarchyid, geography, geometry, sql_variant (Delivery only), XML)
-
-
SQL ServerのためのOracle GoldenGateでは、
SPARSE
設定が含まれている列データをレプリケートできます。
制限事項:
-
Oracle GoldenGateでは、4KBより大きいラージ・オブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。Oracle GoldenGateのすべての機能が、最大4KBのオブジェクトに使用できます。
-
XMLが行に格納されない場合にSQL Serverが行う処理と同様に、Oracle GoldenGateは、XMLデータをラージ・オブジェクト(LOB)として処理します。SQL Server拡張XMLの拡張機能(lax検証、
DATETIME
、union機能など)はサポートされていません。 -
システムによって割り当てられる
TIMESTAMP
列や、非マテリアライズ計算結果列は、キーの一部にすることはできません。TIMESTAMP
列が含まれている表には、キーが必要です。キーには、主キー、一意性制約、あるいはTABLE
文またはMAP
文のKEYCOLS
句で指定された代替キーを使用できます。詳細は、「割当て行識別子」を参照してください。 -
Oracle GoldenGateは、マルチバイト文字データ型と文字列に格納されているマルチバイト・データをサポートしています。マルチバイト・データは、同類のSQL Server構成でのみサポートされます。変換、フィルタリング、およびその他の種類の操作は、マルチバイト文字のデータに対してはサポートされていません。
-
TEXT
、NTEXT
、IMAGE
、VARCHAR (MAX)
、NVARCHAR(MAX)
およびVARBINARY(MAX)
列のデータのキャプチャが、max text repl size
オプションで設定されるSQL Serverのデフォルト・サイズを超える場合は、サイズを拡張します。sp_configure
を使用して、max text repl size
の現在の値を表示し、必要に応じてオプションを調整します。ノート:
Amazon RDS for SQL Serverでは、max text repl size
を64MBより大きくすることはできません。 -
IMAGE
、NTEXT
およびTEXT
データ型の列は、削除およびイメージ更新前操作のNULL
値として記録されます。VARBINARY(MAX)
、VARCHAR(MAX)
およびNVARCHAR(MAX)
の列は、列が更新されないかぎり、イメージ更新前操作のNULL
値として記録されます。詳細は、次のMicrosoftドキュメントでラージ・オブジェクト・データ型の内容を確認してください。
-
Oracle GoldenGateは、最大サイズが2GBのUDTおよびUDAデータをサポートします。SQL_Variant以外のすべてのUDTがサポートされます。
-
SQL Server組込みCLRデータ型(geometry、geography、hierarchyidなど)を含む共通言語ランタイム(CLR)がサポートされます。CLRデータ型は、同類のSQL Server構成でのみサポートされます。変換、フィルタリング、およびその他の種類の操作は、CLRデータに対してはサポートされていません。
-
FILESTREAM
属性付きのVARBINARY (MAX)
列は、4GBまでのサイズがサポートされます。Extractは、標準のWin32
ファイル関数を使用してFILESTREAM
ファイルを読み取ります。 -
浮動小数点数の範囲および精度は、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。
-
Oracle GoldenGateでは、0001/01/03:00:00:00から9999/12/31:23:59:59のタイム・スタンプ・データをサポートしています。タイム・スタンプがGMTからローカル時間に変換されると、これらの制限も変換後のタイム・スタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイム・スタンプがサポートされている上限を超えたり、下回ったりすることがあります。
計算結果列に関する制限事項:
-
計算結果列(永続化と非永続化のどちらも)は、Microsoftのチェンジ・データ・キャプチャではサポートされていません。したがって、計算された列を含む列の証跡にデータは書き込まれません。非永続化計算結果列のデータをレプリケートするには、
TABLE
パラメータのFETCHCOLS
またはFETCHMODCOLS
オプションを使用して表から列データをフェッチします。列がデータ・ベースで変更された時刻と処理されるトランザクション・レコードに対するデータをExtractでフェッチする時刻でデータ値が異なることで、不整合が生じることがあることに注意してください。 -
その列のデータが証跡にあった場合でも、ReplicatはDMLを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。ソース永続化計算結果列またはフェッチされた非永続化列のデータは、計算結果列ではないターゲット列に適用できます。
-
初期ロードでは、データはすべて、トランザクション・ログからではなくソース表から直接選択されます。したがって、初期ロードで、非永続化計算結果列も含め、すべての列のデータ値が証跡に書き込まれるか、またはターゲットに送信されます。どちらになるかは、使用されるメソッドによって決まります。ただし、変更データの適用時に、Replicatは初期ロード・データを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。
-
Oracle GoldenGateは、非永続化計算結果列が
TABLE
文またはMAP
文のKEYCOLS
句で使用されることを許可しません。 -
一意キーに非永続化計算結果列が含まれていて、Oracle GoldenGateがそのキーを使用する必要がある場合は、非永続化計算結果列は無視されます。これによって、残りの列が一意性を強制しない場合には、データ整合性が影響を受けることがあります。
-
一意索引は、非永続化計算結果列に定義されると、使用されません。
-
一意キーまたは一意索引に非永続化計算結果列が含まれていて、表の唯一の一意識別子である場合、Oracle GoldenGateは、ターゲット行を見つけるための識別子としてすべての列を使用する必要があります。非永続化計算結果列はこの識別子として使用できないため、Replicatは、この識別子を含む操作を間違ったターゲット行に適用する場合があります。