ラベル プロシジャ: DATASETS の投稿を表示しています。 すべての投稿を表示
ラベル プロシジャ: DATASETS の投稿を表示しています。 すべての投稿を表示

2019年11月10日日曜日

ライブラリ内の全データセットから、指定したデータセットだけ残して全て削除する





PROC DATASETS の「SAVEステートメント」でタイトルにある通りのことが出来ます。
あまり知られていない機能なので、覚えておくと便利です。



以下では、WORKのDT1~DT5のうち、DT1だけ残して全部削除しています。

data DT1 DT2 DT3 DT4 DT5;
run;


proc datasets lib=WORK nolist memtype=data;
    save DT1;
quit;



データセットだけでなくビューも含めたい場合は「MEMTYPE=」に「VIEW」を追記すればOK

proc datasets lib=WORK nolist memtype=(data view);
    save DT1;
quit;



2019年11月7日木曜日

SASデータセットを削除するDATASETSプロシジャ






データセットを削除する方法1

PROC  DATASETS  LIB=ライブラリ名   MEMTYPE=DATA  NOLIST;
     DELETE  データセット名1  データセット名2 ・・・ ;
QUIT;

  • 「DELETEステートメント」に削除したいデータセットを列挙します。



proc datasets lib=work memtype=data nolist;
  delete dt1 dt2 dt3;
quit;






データセットを削除する方法2  (注意事項あり)

PROC  DATASETS  LIB=ライブラリ名  MEMTYPE=DATA  KILL  NOLIST;
QUIT;


  • 「KILLオプション」でライブラリ内の「全てのデータセット」を削除します。
  • 「全てのデータセット」なので、たとえば「DELETEステートメント」で削除するデータセットを指定していても意味はなく、ライブラリ内の全データセットを削除します。





ちなみに

データセットだけでなくビューも含めて削除したい場合は「MEMTYPE=」に追記すればOK

proc datasets lib=work memtype=(data view) kill nolist;
quit;




2015年1月22日木曜日

ライブラリ内のSASデータセット名を取得する



方法は色々ありますが、今回はDATASETSプロシジャを使った方法を紹介します。


とりあえず、WORKに入ってるデータセット名を取得してみましょう。
まずサンプルデータから。

*** Sample Datasets ;
data DT1; run;
data DT2; run;
data DT3 / view=DT3; run;


DT1とDT2はデータセット、DT3はSASビューです。WORKにはこの3つのみが存在しているとします。


「データセット名」を取得(取得対象: DT1, DT2)

ods output  members = OUT1;
     proc datasets  lib=WORK  memtype=data;
     quit;
ods output close;



「データセット名」と「SASビュー名」を取得(取得対象: DT1, DT2, DT3

ods output  members = OUT2;
     proc datasets  lib=WORK  memtype=(data view);
     quit;
ods output close;



解説

ods output members = 結果のデータセット ;
     proc datasets  lib=ライブラリ  memtype=取得するデータのタイプ ;
     quit;
ods output close;


データのタイプは、「data」でデータセット、「view」でSASビューを表します。