前のページ|次のページ

CALL CATXルーチン

先頭と末尾の空白を削除し、区切り文字を挿入して、連結文字列を返します。

カテゴリ: 文字

構文

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

必須引数

delimiter

連結文字列の間で区切り文字として使用する文字列を指定します。

result

文字変数を指定します。

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

オプション引数

item

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

詳細

CALL CATXルーチンは第2引数resultの結果を返します。resultに続く引数の値がルーチンで追加されます。結果全体を格納するにはresultの長さが足りない場合、次が実行されます。
  • 結果が切り捨てられたことを示す警告メッセージがログに出力されます。
  • 関数呼び出しの場所を示すメモがログに出力されて、切り捨ての原因となった引数のリストが表示されます(SQL句内またはWHERE句内を除く)。
  • DATAステップ内で_ERROR_を1に設定します(WHERE句内を除く)。
CALL CATXルーチンは、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("+",newvar,"X"," ", "Z"," ");X+Zを出力します。

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

関連項目:

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