2016-09-19 6 views
0

私はSASの初心者ですが、SQLから来ているので、私はそれらの違いを扱っています。%includeを使用してSASスクリプトを実行しています

私は他のものの間で、走るSASプログラム「Master.sas」を持って、このような何か:

%include "c:\script1.sas"; 
%include "c:\script2.sas"; 
%include "c:\script3.sas"; 

の質問は、私はそれらのすべてを選択し、それを実行した場合、それが順次実行さん、ですまたは並行して? たとえば、script2がscript1にロードされたテーブルを使用する場合、正常に実行されませんか?私がテストしたところ、その例は明らかですが、script1が変数を計算すると、script2は計算された変数を持つか、実行時に見つかったものを使用します(例えばscript2はscript1より前に実行されていた)。 明確にするために、私はSASがそれらを順番に実行する必要があります。 SQLで

はすなわち、別々のバッチ処理に「GO」が存在する:

CREATE TABLE XXXXX 
GO 

SELECT * FROM XXXXX 
GO 

誰かが出て行くと、そのスクリプトを実行しようとすると、SQLはパラレル言って2番目のスクリプトでエラーを生成する際にそれらを実行します」というテーブルXXXXXは存在しません "。

前回の処理が終了したときにSASまたはSASで同様の処理が必要ですか?

ありがとうございます!

+0

ファイルは順番に実行されます。 1; 2; 3。パラレルにすることができない場合は、ここに詳細があります:https://communities.sas.com/t5/Base-SAS-Programming/running-Proc-Sql-jobs-in-parallel-and-in-sequence/ td-p/147498 – sb0709

答えて

1

%includeが順番に実行されます。 SASは、ほとんどの場合、RUNはないもののGOのSASの同等は、によってによって、RUNある

など、それはコード内の行だけであるかのように、最初の %includeを実行後、第2のヒットと同じことを行います実際には含まれていなければなりません(しかし、それは良い方法と考えられます)。 SASは、RUNを省略しただけではパラレルモードでは動作しませんが、SASがそのコードを実行して実行するように指示します。しかし、これは ではありません。PROC SQLに適用されます。実行グループ処理をサポートせず、即座に ;で終了した各文を実行します。

パラレルで実行する方法があります。たとえば、this hands-on workshop from SUGI 29 on Parallel Processingは、RSUBMITを使用してこれを行う方法を示しています。エンタープライズガイドでは、プログラムを並列処理することができます(ただし、デフォルトのプログラムではありませんが、1つのプログラムでは%includeではありません)。

関連する問題