前のページ|次のページ

TRANTAB プロシジャ

概念: TRANTAB プロシジャ

PROC TRANTABで使用する変換テーブルと文字セットについて

変換テーブルのk番目の要素は、順序どおりに並べた文字セットのk番目の要素に対応します。たとえば、変換テーブルの位置00 (1バイト目)には、コード化された値が含まれ、その値は、順序どおりに並べた文字セットの最初の要素に対応します。動作環境の文字セットに含まれる文字の位置を特定するには、RANK関数を使用します。次の例は、RANKの使用方法を示しています。
   data _null_; x=rank('a'); put "The position of a is " x "."; run;
SASログには、次のメッセージが出力されます。"The position of a is 97.
変換テーブルの各位置には、0 ('00'x)から255 ('FF'x)の範囲内にある16進数が含まれます。16進値の末尾には常にxが付きます。連続する1つ以上の16進値を表すには、それらの値をまとめて引用符で囲み、その後にxを1つ付けます。たとえば、連続する3個の16進値からなる文字列は、'08090A'xと表すことができます。SASログには、変換テーブルの各行が、引用符で囲まれて、後ろにxが付けられた16進値で表示されます。SASログではまた、テーブル内の位置に対応する縦方向と横方向の余白に参照番号が表示されます。変換テーブルの表示には、SASログでの変換テーブルの表示方法が説明されています。

PROC TRANTABを使用した変換テーブルの保存

PROC TRANTABを使用してカスタマイズした変換テーブルを作成すると、プロシジャが自動的にテーブルをSasuser.Profileカタログに保存します。これにより、他のユーザーに影響を与えることなくカスタマイズした変換テーブルを使用できます。SORTプロシジャまたはGOPTIONSステートメントで変換テーブルを指定すると、最初にSasuser.Profileカタログでテーブルが検索されます。指定した変換テーブルがSasuser.Profileカタログにない場合、次にSashelp.Hostカタログが検索されます。
変換テーブルをグローバルにアクセスできるようにするには、SASインストール担当者にこのテーブルをSasuser.ProfileカタログからSashelp.Hostカタログに(CATALOGプロシジャを使用して)コピーするように依頼してください。テーブルが見つからない場合、続けてSashelp.Localeでテーブルが検索されます。

PROC TRANTABを使用したSAS変換テーブルの変更

SAS提供の変換テーブルがニーズに合わない場合、PROC TRANTABを使用してテーブルを編集したり、新しいテーブルを作成したりできます。つまり、SASテーブルを指定するPROC TRANTABステートメントを発行し、テーブルを編集してから、SAVEステートメントを使用してそのテーブルを保存できます。変更した変換テーブルは、Sasuser.Profileカタログに保存されます。SASインストール担当者の場合、次の例のように、PROC TRANTABを使用して変換テーブルを変更し、CATALOGプロシジャを使用して変更したテーブルをSasuser.ProfileカタログからSashelp.Hostカタログにコピーできます。
   proc catalog c=sasuser.profile; copy out=sashelp.host entrytype=trantab; run;
PROC TRANTABを使用してSashelp.Hostカタログに保存された変換テーブルを変更するには、そのデータライブラリとカタログへの更新(書き込み)アクセス権が必要です。

PROC TRANTAB外での変換テーブルの使用

SORTプロシジャでの変換テーブルの使用

PROC SORTは変換テーブルを使用して、並べ替えの照合順序を決定します。代替の変換テーブルは、PROC SORTのSORTSEQ=オプションで指定できます。たとえば、動作環境のデフォルトではEBCDIC順に並べ替えが行われる場合、ASCII順に並べ替えを行うには、次のステートメントを発行してASCII変換テーブルを指定できます。
   proc sort sortseq=ascii; run;
PROC TRANTABでカスタマイズした変換テーブルを作成し、PROC SORTで新しいテーブルを指定することもできます。このテーブルは、英語(U.S.)以外の言語に並べ替え順序を指定する場合に便利です。
変換テーブルを使って違う方法でデータを並べ替える例については、並べ替えへのさまざまな変換テーブルの使用を参照してください。並べ替えに使用できるテーブルとSORTSEQ=オプションの詳細については、SORTSEQ=システムオプション:UNIX、Windows、およびz/OSを参照してください。

外部ファイルのトランスコード

変換テーブルは、LOCALE=システムオプションによって暗黙的に設定されます。これらは外部ファイルのトランスコーディングにのみ使用されます。
変換テーブルはOPTIONSプロシジャを使用してリストできます。次の例では、z/OS環境でLOCALE=システムオプションを使用してen_USに設定しています。
TRANTAB=(eol1wlt1,wlt1eol1,elat_ucs,elat_lcs,elat_ccl,,,elat_scc)

SAS/GRAPHでの変換テーブルの使用

SAS/GRAPHでは、ほとんどの場合、変換テーブルはIBM動作環境で使用されます。グラフィックコマンドはIBM動作環境からEBCDIC表記で送信され、ASCII表記で非同期グラフィックデバイスにアクセスする必要があるため、変換テーブルが必要になります。具体的には、SAS/GRAPHはこれらのデバイス用にASCII表記で内部的にコマンドストリームを作成します。しかし、コマンドをEBCDIC表記に変換してから、デバイスへの転送を行う通信ソフトウェアに渡す必要があります。SAS/GRAPHは、内部的に変換テーブルを使用して、ASCIIからEBCDICへの初期変換を行います。通信ソフトウェアは、コマンドストリームを再変換してASCII表記に戻してから、グラフィックデバイスにアクセスします。
変換テーブルは、動作環境に固有です。多くの場合、デフォルトの変換テーブルであるSASGTAB0か、SASが提供するいずれかのグラフィック変換テーブルをそのまま使用できます。ただし、これらのテーブルでは正しく変換できないものがある場合、PROC TRANTABを使用して独自の変換テーブルを作成できます。SASGTAB0テーブルは、英語(U.S.)以外の言語の文字が検出される場合に正しく変換できないことがあります。
SAS/GRAPHに代替変換テーブルを指定するには、GOPTIONSステートメントでTRANTAB=オプションを使用するか、デバイスエントリのTRANTABデバイスパラメータを変更します。たとえば、次のGOPTIONSステートメントではGTABTCAMグラフィック変換テーブルを指定しています。
   goptions trantab=gtabtcam;
SAS/GRAPHで使用される変換テーブルは、デバイス-動作環境間 変換および動作環境-デバイス間変換の両方を実行します。したがって、変換テーブルは512バイトで構成され、最初の256バイトはデバイス-動作環境間変換(IBMメインフレームでのASCIIからEBCDIC)に、次の256バイトは動作環境-デバイス間変換(IBMメインフレームでのEBCDICからASCII)に使用されます。PROC TRANTABでは、デバイス-動作環境間変換の変換テーブルの領域はテーブル1と見なされ、動作環境-デバイス間変換の領域はテーブル2と見なされます。ASCII変換テーブル(SAS提供の変換テーブル)のリストについては、 変換テーブルの表示を参照してください。テーブルの両方の領域が出力されています。
IBMメインフレーム以外の動作環境では、変換テーブルを使用してドライバが作成したデータストリーム内の特定の文字を変換できます。たとえば、ドライバによって通常データストリーム内に縦棒が生成される場合、その縦棒のかわりに別の文字を生成するには、縦棒を別の文字に変換する変換テーブルを作成できます。
SAS/GRAPHは、キーボードで生成されたコードを指定された文字にマッピングする場合、および文字コードをグラフィック出力デバイスで要求されるコードにマッピングする場合に、キーマップおよびデバイスマップも使用します。これらのマップはSAS/GRAPHに固有です。詳細については、SASテクニカルサポートにお問い合わせください。
前のページ|次のページ|ページの先頭へ