前のページ|次のページ

CALL CATTルーチン

末尾の空白を削除して、連結文字列を返します。

カテゴリ: 文字

構文

CALL CATT(result <, item-1, …, item-n>);

必須引数

result

文字変数を指定します。

制限事項 CALL CATTルーチンがresultの有効な引数として受け付けるのは文字変数のみです。これらの引数はCALL CATTで更新できないため、定数またはSAS式は使用しないでください。

オプション引数

item

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

詳細

CALL CATTルーチンは第1引数resultの結果を返します。resultに続く引数の値がルーチンで追加されます。結果全体を格納するにはresultの長さが足りない場合、次が実行されます。
  • 結果が切り捨てられたことを示す警告メッセージがログに出力されます。
  • 関数呼び出しの場所を示すメモがログに出力されて、切り捨ての原因となった引数のリストが表示されます(SQL句内またはWHERE句内を除く)。
  • DATAステップ内で_ERROR_を1に設定します(WHERE句内を除く)。
CALL CATTルーチンは、BESTw.出力形式で数値をフォーマットした後、数値引数から先頭と末尾の空白を削除します。

比較

通常、CALL CATS、CALL CATT、CALL CATXルーチンは連結演算子(||)をTRIMおよびLEFT関数と使用するステートメントと同等です。ただし、CALL CATS、CALL CATT、CALL CATXルーチンの方が、TRIMおよびLEFTを使うよりも高速です。
CALL CATS、CALL CATT、CALL CATXと同等のステートメントを次の表に示します。X1 - X4の変数は文字変数を指定し、SPは空白やカンマなどの区切り文字を示します。
CALLルーチン
同等のステートメント
CALL CATS(OF X1-X4);
X1=TRIM(LEFT(X1))||TRIM(LEFT(X2))||TRIM(LEFT(X3))||
TRIM(LEFT(X4));
CALL CATT(OF X1-X4);
X1=TRIM(X1)||TRIM(X2)||TRIM(X3)||TRIM(X4);
CALL CATX(SP, OF X1-X4); *
X1=TRIM(LEFT(X1))||SP||TRIM(LEFT(X2))||SP||
TRIM(LEFT(X3))||SP||TRIM(LEFT(X4));
注: いずれかの引数が空白の場合、CALL CATXによって出力される結果は連結コードの出力するコードとわずかに異なります。この場合、CALL CATXは対応する区切り文字を省略します。たとえば、CALL CATX("+","X"," ", "Z"," ");X+Zを出力します。

CALL CATTルーチンが文字列を連結する方法を次の例に示します。
data _null_;
   length answer $ 36;
   x='London is t  '; 
   y='he Olym   ';
   z='pic site for 2012. ';
   call catt(answer, x, y, z);
   put answer;
run;
次の出力がログに書き込まれます。
London is the Olympic site for 2012.

関連項目:

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