Unicode文字セットのためのルール - Basic Teradata Query

Basic Teradata Query リファレンス

Product
Basic Teradata Query
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2019-07-11
dita:mapPath
ja-JP/kil1527114222313.ditamap
dita:ditavalPath
ja-JP/kil1527114222313.ditaval
dita:id
B035-2414
Product Category
Teradata Tools and Utilities

BTEQでは、U+0000からU+10FFFFまでの範囲のすべてのUnicode文字がサポートされています。BMP以外の文字をデータベース間で送受信するには、次のステートメントを使用して"Unicode Pass Through"機能をオンにする必要があります。

SET SESSION CHARACTER SET UNICODE PASS THROUGH ON;

Unicode文字のサイズは異なる場合があることに注意してください。UTF-8文字の場合は1バイトから4バイト、UTF-16文字の場合は2バイトから4バイトになります。このため、出力またはエクスポート ファイルのサイズは、ファイルに含まれている文字数を表わすものではありません。

ユーザーの責任において、UTF-16入力ファイルのエンディアンがBTEQを実行しているプラットフォームのエンディアンと同じであることを確認する必要があります。 異なる場合、またはBOMが正しくない場合、BTEQはエラーを報告します。

ワークステーション接続システム

UTF-8またはUTF-16セッションを開始する場合、-cオプションを使用してセッション文字セット エンコードを定義し、また場合によっては-eオプション(バッチ モード)または-mオプション(対話モード)を使用してI/Oエンコードを定義することを推奨します。

BOMは、以下の入力ファイルで任意選択できます。

  • stdinでリダイレクトされるファイル
  • RUNコマンドで実行されるファイル
  • REPORT形式のインポート ファイル
  • VARTEXT形式のインポート ファイル
  • SQL(内部)ストアド プロシージャ ソース ファイル
  • LDOテキスト ファイル

オプションのBOMは、次の出力ファイルに書き込むことができます。

  • ファイルまたはパイプにリダイレクトされているstdoutおよびstderr
  • MESSAGEOUTコマンドを使用して生成されるファイル
  • REPORT形式のエクスポート ファイル
  • DIF形式のエクスポート ファイル
  • LDOテキスト ファイル

メインフレーム接続システム

z/OS BTEQは、次の方法でUnicodeセッションをサポートしています。

  • 入力データ(SYSINとして定義またはRUNコマンドによる実行用に定義)はEBCDICとして読み取る
  • 出力データ(SYSOUTとして定義またはMESSAGEOUTコマンドを使用して生成)はEBCDICとして書き込む
  • VARTEXT形式のインポート ファイルとLDOテキスト インポート ファイルは、セッション文字セット エンコード(UTF-8またはUTF-16)を使用する。 BOMは任意選択。
  • REPORTおよびDIF形式のエクスポート ファイルおよびLDOテキスト エクスポート ファイルは、セッション文字セット エンコード(UTF-8またはUTF-16)で書き込む。
Unicodeに比べて、EBCDICで扱える文字は大幅に少なくなります。 EBCDICにはないUnicode文字をSYSOUT(またはMESSAGEOUTファイル)に表示しようとすると、変換エラーが生じます。