ODBCオペレータの制約事項と制限は、以下のとおりです。
- OracleデータベースのテーブルのBINARY_FLOAT列をエクスポートして、Teradata DatabaseのFLOAT列にロードすることはできません。これは、BINARY_FLOAT列が4バイトの浮動小数点値であり、Teradata Databaseが4バイトの浮動小数点列をサポートしていないためです。Teradata Databaseは、8バイトの浮動小数点列のみをサポートします。
- バンドルされているDataDirect ODBCドライバは、INTERVALデータ型をサポートしていません。
- MySQLのCHAR列の末尾の空白は、列がUnicode文字セットで定義されている場合、取得中に削除されます。
例えば、列は次のように定義されます。
col_char CHAR(10) CHARACTER SET UTF16
値は'abc'で、テーブルに'abc '(7つの空白を含む)として格納されます。列が取得されると、その値は'abc'となり、オペレータはその値を'abc\0\0\0\0\0\0\0'(7つの'\0'が実際の値の後に続く)として10バイトのバッファに格納します。
NULL文字が埋め込まれた値がTeradataのCHAR列に挿入されました。これにより、ターゲットテーブルの列の値が変更されます。
Teradataでは、CHARの代わりにVARCHARを使用することをお勧めします。SQL SELECTステートメントのCHAR列でRPADを使用する場合、列に対して返されるSQLデータ型はSQL_WVARCHARです。次に、ODBCオペレータは、CHAR形式ではなくVARCHAR形式として処理します。これにより、TeradataテーブルのCHAR列にロード中にエラーが発生します。