WIDTH - 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

目的

レポートの各行の出力制限を指定します。

構文



次のような場合に当てはまります。

n
プラットフォーム、文字セット、およびREPORTALIGN設定に応じて、バイト数、文字数、またはprintwidth領域で指定できる出力制限。
20~1048575の文字数を指定することができます。

使用上の注意

EXPORTコマンドの指定の後にWIDTHコマンドを使用して、エクスポートされたファイルの幅を変更することができます。 EXPORT RESETが使用されると、WIDTHは、元の値(そのエクスポートの前に有効であった値)にリセットされます。

WIDTHコマンドはTeradata SQLマクロで使用できます。

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

  • デフォルト値は、対話モードの場合は75で、バッチ モードの場合254です。
  • WIDTHで指定する値は、プリント可能な文字に関連しています。ただし、紙送り制御文字は、この合計数に含まれません。
  • WIDTHで指定する値は、LRECLの値以下でなければなりません。 デスティネーション ファイルのLRECLの値より大きいと、レポートの行幅が切り捨てられます。 Unicode UTF-8/UTF-16セッションの場合、LRECLはWIDTHの文字ごとに4バイトまで許容する必要があります。
  • メインフレーム接続システムの場合、マルチバイト セッション文字セットを使用する場合は必ず、可変のRECFM(V、VA、VB、VBA)の設定が推奨されます。これは、単一の文字が複数のバイトを使う場合があるためです。
  • REPORTおよびDIF形式のエクスポート ファイルの紙送り制御は、z/OSで実行するBTEQのUnicodeではサポートされていません。

ワークステーション接続システムのデフォルト値は、対話モードとバッチ モードの両方で75です。

次のテーブルでは、メインフレーム接続システムの場合にWIDTH値が何に基づくかを示します。

出力の種類 文字セット REPORTALIGN設定 WIDTH値
SYSOUT すべて - Bytes
テキスト エクスポート UTF8またはUTF16 COMPATIBLE Bytes
テキスト エクスポート UTF8またはUTF16 EQUALWIDTH Characters
テキスト エクスポート UTF8またはUTF16 COLUMNS 印刷幅スペース*
テキスト エクスポート 非Unicode - Bytes
*他の文字には1つの物理スペースが必要ですが、全幅ワイド文字には2つの物理スペースが必要になります。

以下のテーブルは、ワークステーションに接続されたシステムのWIDTH値の基準について理解するのに役立ちます。これらの値はstdoutおよびテキスト エクスポートの両方に適用されます。

文字セット I/Oエンコーディング REPORTALIGN設定 WIDTH値
UTF8またはUTF16 UTF8またはUTF16 COMPATIBLE Bytes
UTF8またはUTF16 UTF8またはUTF16 EQUALWIDTH Characters
UTF8またはUTF16 UTF8またはUTF16 COLUMNS 印刷幅スペース*
非Unicode - - Bytes
*他の文字には1つの物理スペースが必要ですが、全幅ワイド文字には2つの物理スペースが必要になります。

DBSエクスポート幅

BTEQを使用して、マルチバイトの文字を含む非UTF-16問合わせの結果をフォーマットする場合には、DBSエクスポート幅の規則をテストするBTEQ WIDTH設定(またはSYSPRINTデータ セットのLRECL)を指定する必要があります。 WIDTH設定が小さすぎる場合には、特定文字のバイトが切り捨てられる場合があります。 例えば、1行が長すぎて、マルチバイト文字列の切り捨てや次の行への折り返しが行なわれる場合には、SI文字が失なわれたり、マルチバイト文字が壊れたりする可能性があります。 DBSエクスポート幅の詳細については、<International Character Set Support、B035-1125>を参照してください。

例1 – WIDTH

次の対話例は、最初はWIDTH の指定が画面デフォルトの75 文字の場合、次に40 文字と20 文字に設定した場合、選択した情報が返されるものです。

database workforce;   
.defaults    
.format on    
.set foldline on all  
.set sidetitles on    
.skipline on 4    
.heading 'Width Off'    
select   deptname (title 'Department') 
,loc (title 'Loc') 
,mgrno (title 'Manager No')   
from     department 
order by loc   
;   
.defaults    
.format on   
.set foldline on   
.set sidetitles on  
.heading 'width 40'  
.width 40    
= 1   
.defaults   
.format on   
.set foldline on   
.sidetitles    
.heading 'width 20'    
.width 20   
= 1   
.defaults    
.format off   
.logoff    
.exit

BTEQの応答

*** Query completed. 5 rows found. 3 columns returned.
                       Width Off                       
Department   Engineering      Loc ATL    Manager No 10012
Department   Manufacturing    Loc CHI    Manager No 10007
Department   Marketing        Loc  NYC   Manager No 10021
Department   Administrati0n   Loc NYC    Manager No 10011
Department   Exec Office      Loc NYC    Manager No 10018
*** Query completed. 5 rows found. 3 columns returned.
   
   
                width 40                
Department  Engineering
Loc  ATL    Manager No   10012
Department  Manufacturing
Loc  CHI    Manager No   10007
Department  Marketing
Loc  NYC    Manager No   10021
Department  Administration
Loc  NYC    Manager No   10011
Department  Exec Office
Loc  NYC    Manager No   10018
   
   
*** Query completed. 5 rows found. 3 columns returned.
      width 20      
Department Engineeri
       Loc ATL   
Manager No 10012
Department Manufactu
       Loc CHI   
Manager No 10007
Department Marketing
       Loc NYC   
Manager No 10021
Department Administr
       Loc NYC   
Manager No 10011
Department Exec Offi
       Loc NYC   
Manager No 10018

WIDTHを指定する際に入力した値が無効な場合には、例えば次のようなエラー メッセージが表示されます。

.set width 1048576     
*** Error:  Width value must be in the 20..1048575 range.     

例2 – マクロによって出力されるWIDTH

Teradata SQLマクロでは、使用例1のWIDTHコマンドは次のようになります。

ECHO '.SET WIDTH 60';