前のページ|次のページ

TRANSLATE関数

文字式内の特定の文字を置き換えます。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。
Windows固有: to引数とfrom引数のペアはオプションです。
UNIX固有: to引数とfrom引数のペアは必須です。
z/OS固有: to引数とfrom引数のペアは必須です。
ヒント: この関数に相当するDBCS関数は、 KTRANSLATEです。

構文

TRANSLATE(source, to-1, from-1 <, ...to-n, from-n>)

必須引数

source

元の文字列が含まれる文字定数、変数または式を指定します。

to

TRANSLATEで代替文字として使用する文字を指定します。

from

TRANSLATEで置換する文字を指定します。

動作環境の情報: 一部の動作環境では、tofromの引数ペアが必要です。他の動作環境では、照合順序のセグメントがNULLのfrom引数に置き換わります。詳細については、動作環境に関するSASのドキュメントを参照してください。

詳細

一般情報

toの値とfromの値は、個々の文字ごとに対応します。たとえば、TRANSLATEで、fromの最初の文字がtoの最初の文字に変更されるなどです。
DATAステップで、まだ長さが割り当てられていない変数にTRANSLATE関数から値が返される場合、その変数には第1引数の長さが割り当てられます。
TRANSLATEが受け入れるtoおよびfromの引数ペアの最大数は、SASを実行するときの動作環境によって異なります。短い引数のペアを数個使用する場合と、長い引数のペアを少数使用する場合とでは、機能的な違いはありません。

Windows環境でのTRANSLATEの詳細

Windows環境では、to引数とfrom引数のペアを入力する必要はありません。ただし、このペアを使用しない場合は、プレースホルダとしてカンマを入力する必要があります。toの文字がfromの文字より少ない場合、TRANSLATEはfromの余った文字を空白に変更します。toの文字がfromの文字より多い場合、TRANSLATEはtoの余った文字を無視します。

UNIX環境でのTRANSLATEの詳細

UNIXでは、to引数とfrom引数のペアを指定してください。そうすれば、カンマを代替として使用できます。

z/OS環境でのTRANSLATEの詳細

z/OSでは、to引数とfrom引数のペアを指定する必要があります。また、指定可能なtoとfromのペアの数に実際的な制限はありません。

比較

TRANWRD関数は、単語(または文字のパターン)をスキャンし、それらの単語を2番目の単語(または文字のパターン)で置き換える点でTRANSLATEとは異なります。
z/OS: TRANSLATEは、半角文字セットのみの文字置換を処理します。半角文字を全角文字と置換、または全角文字を半角文字と置換するには、KTRANSLATEを使用してください。

SASステートメントとその結果を次に示します。
SASステートメント
結果
x=translate('XYZW', 'AB', 'VW');
put x;
 
XYZB
string1='AABBAABABB';
y=translate(string1,'12','AB');
put y=;
y=1122112122

関連項目:

関数:
前のページ|次のページ|ページの先頭へ