前のページ|次のページ

SLEEP関数

この関数を呼び出したプログラムの実行を任意の期間中断します。

カテゴリ: 特殊

構文

SLEEP(n <, unit>)

必須引数

n

プログラムの実行を中断する秒数を指定する数値定数、変数または式です。nには、負の値または欠損値は無効です。

ヒント
unit引数を使用しない場合、nの値は、nより小さい次の整数値になります。
範囲 n ≥ 0
ヒント n引数に小数を使用する場合、1秒の何分の1かの間実行を中断するときは、unit引数が必要です。たとえば、SLEEP(.25);では実行は中断されません。SLEEP(1.25);では実行が1秒間中断されます。SLEEP(1.25, 1);では実行が1.25秒間中断されます。SLEEP(.25,1)では実行が.25秒間中断されます。

オプション引数

unit

nに適用される時間を10のべき乗の秒単位で指定します。たとえば、1は1秒、.001は1ミリ秒、5は5秒に相当します。

デフォルト .001

詳細

SLEEP関数は、この関数を呼び出したプログラムの実行を指定した期間中断します。プログラムには、関数を呼び出せるDATAステップ、マクロ、IML、SCL、プログラムを指定できます。
SLEEP関数では、プログラムの実行が中断されるのみで、値は返されません。
SLEEP関数で、デフォルトのunit値を使用すると、ポップアップウィンドウが表示され、SASがスリープ状態になる時間が通知されます。
SLEEP関数を呼び出すプロブラムをサブミットすると、SLEEPウィンドウが表示され、SASのウェイクアップ時間が通知されます。SASをNOSLEEPWINDOWシステムオプションで起動することにより、このSLEEPウィンドウが表示されないようにすることができます。SASセッションは、スリープ期間が終了するまで非アクティブ状態になります。SLEEP関数の呼び出しを取り消すには、CTRL+BREAKアテンションシーケンスを使用します。
SLEEP関数を呼び出すには、Null DATAステップを使用する必要があります。このDATAステップに従い、残りのSASプログラムを実行します。SLEEP関数をこの方法で使用すると、CTRL+BREAKアテンションシーケンスを使用して、SLEEP関数を中断し、残りのSASプログラムの実行を続行することができます。

例1: 指定した期間の実行中断

次の例では、DATAステップPAYROLLの実行を20秒遅延させるようにSASに指示します。
data payroll;
   time_slept=sleep(20,1);
   ...more SAS statements...
run;

例2: スリープ時間の計算に基づいた実行中断

次に、DATAステップBUDGETの実行を2013年3月1日午前3時まで中断するようにSASに指示する例を示します。SASでは、対象日とDATAステップの実行開始日時に基づいて中断の長さが計算されます。
data budget;    
   sleeptime='01mar2013:03:00'dt-'01mar2013:2:59:30'dt; 
   time_calc=sleep(sleeptime,1);
   put 'Calculation of sleep time:';
   put sleeptime='seconds';
run;
SASは次の結果をログに書き込みます。
sleeptime=30 seconds

関連項目:

CALLルーチン:
前のページ|次のページ|ページの先頭へ