前のページ|次のページ

CAT関数

先頭または末尾の空白を削除せずに、連結文字列を返します。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル2に準拠しており、SBCS、DBCSおよびMBCS(UTF8)での使用目的で設計されています。
ヒント: この関数に相当するDBCS関数は、SAS各国語サポート(NLS):リファレンスガイドKSTRCAT です。

構文

CAT(item-1 <, …, item-n>)

必須引数

item

文字または数値の、定数、変数または式を指定します。itemが数値の場合、その値はBESTw.出力形式を使用して文字列に変換されます。この場合、先頭の空白は削除され、ログにメモは記録されません。

詳細

返される変数の長さ

DATAステップで、まだ長さが割り当てられていない変数にCAT関数から値が返される場合、その変数には200バイトの長さが設定されます。まだ長さが割り当てられていない変数に連結演算子(||)から値が返される場合、その変数の長さは結合されている値の長さの合計になります。

返される変数の長さ:特殊なケース

CAT関数は、変数または一時バッファに値を返します。CAT関数の戻り値の長さは次のとおりです。
  • 最大200文字(WHERE句およびPROC SQL)
  • 最大32767文字(WHERE句以外のDATAステップ)
  • 最大65534文字(CATがマクロプロセッサから呼び出される場合)
CATが値を一時バッファに返す場合、バッファの長さは呼び出し環境によって異なります。バッファの値はCATの処理後に切り捨てられる可能性があります。この場合、切り捨てに関するメッセージはログに出力されません。
変数またはバッファの長さが不十分で連結結果を格納できない場合、SASは次の手順を実行します。
  • DATAステップおよびPROC SQLの結果を空白値に変更します。
  • 呼び出し環境に応じて、結果が切り捨てられたことを示す警告メッセージ、または空白値に設定されたことを示す警告メッセージがログに出力されます。
  • 関数呼び出しの場所と、切り捨ての原因となった引数のリストを示すメモがログに出力されます。
  • DATAステップで_ERROR_を1に設定します。
CAT関数は、BESTw.出力形式で数値をフォーマットした後、数値引数から先頭と末尾の空白を削除します。

比較

CAT、CATS、CATT、CATX関数の結果は、一般的に連結演算子(||)とTRIMおよびLEFT関数の特定の組み合わせによって生成される結果と同じになります。ただし、CAT、CATS、CATT、CATX関数のデフォルトの長さは、連結演算子の使用時に取得する長さとは異なります。詳細については、返される変数の長さを参照してください。
CAT、CATS、CATT、CATX関数はTRIMおよびLEFT関数よりも速く、変数リストをサポートする呼び出し環境では、変数リストに対応するOF構文で使用できます。
次の表に、CAT、CATS、CATT、CATX関数と同等のコードを示します。X1 - X4の変数は文字変数を指定し、SPは空白やカンマなどの区切り文字を示します。
関数
同等のコード
CAT(OF X1-X4)
X1||X2||X3||X4
CATS(OF X1-X4)
TRIM(LEFT(X1))||TRIM(LEFT(X2))||TRIM(LEFT(X3))||
TRIM(LEFT(X4))
CATT(OF X1-X4)
TRIM(X1)||TRIM(X2)||TRIM(X3)||TRIM(X4)
CATX(SP, OF X1-X4)
TRIM(LEFT(X1))||SP||TRIM(LEFT(X2))||SP||
TRIM(LEFT(X3))||SP||TRIM(LEFT(X4))

次の例では、CAT関数がどのように文字列を連結するのかを示します。
data _null_;
   x='  The 2012 Olym'; 
   y='pic Arts Festi';
   z='  val included works by D  ';
   a='ale Chihuly.';
   result=cat(x, y, z, a);
   put result $char.; 
run;
次の出力がログに書き込まれます。
 The 2012 Olympic Arts Festi val included works by D ale Chihuly.

関連項目:

前のページ|次のページ|ページの先頭へ