SYSTEM関数
SASセッションで動作環境コマンドを発行し、システムリターンコードを返します。
カテゴリ: |
特殊 |
制限事項: |
z/OSでは、TSOコマンドを正常に実行できるのは、TSO SASセッションのみです。TSO以外のセッションでは、このコマンドは無効になり、リターンコードは0に設定されます。
|
z/OS固有: |
コマンドには、TSOコマンド、エミュレートされたUSSコマンドまたはMVSプログラムを使用する必要があります。 |
構文
必須引数
command
次のものを指定します。引用符で囲まれたシステムコマンド(明示的な文字列)、値がシステムコマンドである式、または値が実行されるシステムコマンドである文字変数の名前のいずれかを指定します。
動作環境の情報: 指定できる内容については、動作環境に関するSASのドキュメントを参照してください。システムリターンコードは、お使いの動作環境によって異なります。
z/OS固有: z/OS環境では、システムコマンドという用語は、TSOコマンド、CLISTおよびREXX execを意味します。
制限事項 |
コマンドの長さは、末尾の空白を含めて1024文字以内にする必要があります。 |
比較
SYSTEM関数はXステートメント、XコマンドおよびCALL SYSTEMルーチンに似ています。Xステートメント、Xコマンドまたは%SYSEXECマクロステートメントの方がオーバーヘッドが少ないため、これらの使用が望ましい場合がほとんどです。ただし、SYSTEM関数は条件付きで実行でき、引数として式を使用できます。Xステートメントはグローバルステートメントであり、SASでの条件付きステートメントの有無に関係なく、DATAステップがコンパイルされると実行されます。
例
例1: 一般的な例
マクロ変数SYSDAYがFriday
の場合、ホストコマンドTIMEDATAを実行します。
data _null_;
if "&sysday"="Friday" then do;
rc=system("timedata");
end;
else rc=system("errorck");
run;
例2: z/OS固有の例
次の例では、SYSTEM関数を使用して外部ファイルを割り当てます。
data _null_;
rc=system('alloc f(study) da(my.library)');
run;
完全修飾データセット名を付けるには、次のステートメントを使用します。
data _null_;
rc=system("alloc f(study) da('userid.my.library')");
run;
2番目の例では、コマンドが二重引用符に囲まれていることに注意してください。TSOコマンドに引用符が含まれている場合には、このコマンドを二重引用符で囲むのが最良の方法です。一重引用符を使用する場合には、TSOコマンド内の引用符を二重にしてください。
data _null_;
rc=system('alloc f(study)da(''userid.my.library'')');
run;