MacroCharSetオプションは、Streamオペレータにのみ適用されます。
MacroCharSetオプションは、スキーマの文字フィールドにおけるサーバー記憶装置の文字セット名を指定します。 Streamオペレータはサーバー記憶装置の文字セット名を使用して、マクロ作成時に各文字フィールドのCHARACTER SET句を生成します。 Streamオペレータは、ジョブに指定されているDML文ごとにマクロを作成します。 適切なサーバー記憶装置の文字セットは、文字セット コード変換エラーを回避するために必要です。
- DEFINE SCHEMA文で文字の列を宣言した後に、フィールド レベルのMACROCHARSET (<field-server-character-set>)句を指定します。
フィールド レベルのMACROCHARSET (<field-server-character-set>)句が、スキーマの特定の文字フィールドで指定されている場合、このフィールド サーバー文字セットはその特定の文字フィールドで使用されます。
- DEFINE SCHEMA文で、グローバル レベルのDEFAULT MACROCHARSET (<global-server-character-set>)句を指定します。
グローバル レベルのDEFAULT MACROCHARSET (<global-server-character-set>)句が指定されている場合、スキーマにフィールド レベルのMACROCHARSET句が指定されていない各文字フィールドで、このグローバルなサーバー文字セットが使用されます。
グローバル レベルのDEFAULT MACROCHARSET (<global-server-character-set>)句が指定されていない場合、スキーマにフィールド レベルのMACROCHARSET句が指定されていない各文字フィールドのサーバー記憶装置の文字セットは、クライアント セッション文字セットに応じてLATINまたはUNICODEになります。
クライアントのセッション文字セット名が以下の場合、LATINになります。
- ASCII
- EBCDIC
- _0Aまたは_0Eで終端
- _zxで終端。"z"は0(数字のゼロ)以外
- _zxまたは_zxxで終端していない。KATAKANAEBCDIC、UTF-8、またはUTF-16以外
その他のすべてのクライアントのセッション文字セットの場合、UNICODEになります。
異なるサーバー記憶装置の文字セットが設定された文字の列をロードする場合、フィールド レベルのMACROCHARSET (<field-server-character-set>)句を使用することを推奨します。 例えば、次のテーブル定義では、日本語クライアントのセッション文字セットを使用してターゲット テーブルにデータをロードします。EMP_ID INTEGER, EMP_NAME VARCHAR(40) CHARACTER SET UNICODE, EMP_SEX CHAR(1) CHARACTER SET LATIN.
フィールド レベルのMACROCHARSET句の指定方法
DEFINE SCHEMA EMP_SCHEMA ( EMP_ID INTEGER, EMP_NAME VARCHAR(40) MACROCHARSET (UNICODE), EMP_SEX CHAR(1) MACROCHARSET (LATIN) );
- 文字ではない列でのフィールド レベルのMACROCHARSET (<field-server-character-set>)句。
- 無効なサーバー記憶装置の文字セット。 ジョブは、"RDBMS error 3706: Syntax error: Expected Character Data Type"(RDBMSエラー3706: 構文エラー: 文字データ型を指定してください)で終了します。
サーバー記憶装置の文字セット名については、Teradata Vantage™ - Advanced SQL Engine国際文字セット サポート, B035-1125を参照してください。