目的
この制御によって、ユーザーは、SQLデータ返却要求への応答としてデータベースからデータ行を返すために標識モードを使用するかどうかを指定できます。データ形式には、NULL値を識別するための識別子ビットのバイトが含まれます。
構文
次のような場合に当てはまります。
- INDICDATA
- INDICATORMODEの別名
- OFF
- フィールド モード
- ON
- 標識モード
使用上の注意
特に指定しなければ、データはフィールド モードで返され、付随する書式設定に従って書式化されます。 また、すべてのデータが文字形式で返されます。 INDICATORMODEコマンドのオプションをONに設定すると、データは標識モードで返されます。 標識モードでは、BTEQはデータの書式化を行ないません。 代わりに、データを返すSQL文で指定された形式に従って、返された各行が表わされます。
Teradata Databaseから標識モードで返される各データ行は、その行に含まれているデータを表わす標識変数で始まります。 1つの標識変数(1ビット)が1つのデータ項目に対応しており、次に示すように、そのデータ項目の値がNULLかどうかを示しています。
- 0 - データ項目の値がNULLでないことを示す。
- 1 - NULL値可能フィールドの場合、データ項目にNULLの値が含まれていることを示す。NULL値が許可されていないフィールドにNULLの値が入っていた場合、Teradata Databaseからエラー メッセージが返されます。
Teradata Databaseから返される最初の応答(最初の行)の前に、情報パーセル(DataInfo)が送られてきます。このパーセルには、要求に対する応答として返される列の総数、および各列のデータ型と長さについての情報が含まれています。
.EXPORT INDICDATAを指定すると、自動的に標識モードに設定されます。 また、.EXPORT REPORT、.EXPORT RESET、.SET RECORDMODE OFF、または.SET INDICATORMODE OFFを指定すると、自動的にデフォルトのフィールド モードに設定されます。
INDICATORMODEコマンドを使用しない場合、値はデフォルトでOFFになります。 コマンドは使用されているがONまたはOFFが指定されていない場合、BTEQはINDICATORMODEをONに設定します。
RECORDLENGTHコマンドの設定は、INDICATORMODE設定がONのときにstdoutに表示される16進数のダンプに影響します。RECORDLENGTH=MAX64の場合、16進数のダンプには4桁のオフセットが含まれます。RECORDLENGTH=MAX1MBの場合、BTEQは大きなレコードを処理するために8桁のオフセットを使用します。
INDICATORMODEコマンドは、Teradata SQLマクロで使用できます。
例1 – INDICATORMODE
ネイティブ書式でクライアント システムにデータを返すには、次のコマンドを入力します。
.database workforce; .set defaults .set indicatormode on select empno ,proj_id from charges where empno = 10004 order by proj_id ; .indicatormode off = 1 .defaults .format off .logoff .exit
BTEQの応答
*** New default database accepted . *** Success, Stmt# 1 ActivityCount = 2 *** Query completed. 2 rows found. 2 columns returned. *** Dump of Parcel DATAINFO: 00000000 0002 01F4 0002 01C4 0008 * ...4...D..* *** Record#1 . Dump Of Data: 00000000 0027 14C5 D5C7 60F0 F0F0 F2 * ...ENG-0002* *** Record#2 . Dump Of Data: 00000000 0027 14C5 D5C7 60F0 F0F0 F3 * ...ENG-0003* *** Query completed. 2 rows found. 2 columns returned. empno proj_id -------- -------- 10004 ENG-0002 10004 ENG-0003
例2 – マクロによって出力されるINDICATORMODE
Teradata SQLマクロでは、使用例1のコマンドは次のようになります。
ECHO '.SET INDICATORMODE ON';
例3 – INDICATORMODE
INDICATORMODEコマンド オプションをONに設定した後、フィールド モードでデータを返すためには、次のように入力します。
.SET INDICATORMODE OFF