1つまたはすべてのライブラリを取り消す方法を紹介します。
ライブラリを取り消す構文
LIBNAME ライブラリ参照名 CLEAR; |
すべてのライブラリを取り消す構文
LIBNAME _ALL_ CLEAR; |
例
* 適当にライブラリを割り当て ; libname test1 "適当なパス1"; libname test2 "適当なパス2"; * ライブラリ「TEST2」のみ取り消す ; libname test2 clear; |
ライブラリを取り消す構文
リターンコードを格納する変数 = LIBNAME( "ライブラリ参照名" ); |
- 取り消しが成功したか失敗したか、などの情報はログに表示してくれません。
- その代わり、LIBNAME関数のリターンコードには以下が格納される。
- 取り消せた場合「0」
- なんらかのERROR、WARNINGなど特記事項がある場合は「0以外」(特記事項はSYSMSGという関数で取得できる)
例
* 適当にライブラリを割り当て ; libname test1 "適当なパス1"; libname test2 "適当なパス2"; * ライブラリ「TEST1」「TEST2」を取り消す ; data _null_; length msg $2000.; rc = libname( "test1" ); if rc^=0 then do; msg=sysmsg(); put msg; end; rc = libname( "test2" ); if rc^=0 then do; msg=sysmsg(); put msg; end; run; |
以下のようにDOループなどを使ってドカッと取り消したり、色々工夫の余地があります。
* 適当にライブラリを割り当て ; libname test1 "適当なパス1"; libname test2 "適当なパス2"; libname test3 "適当なパス3"; * ライブラリ「TEST1」~「TEST3」を取り消し ; data _null_; length msg $2000.; do i = 1 to 3; rc = libname( cats( "test", i ) ); if rc^=0 then do; msg=sysmsg(); put msg; end; end; run; |
上の例を簡単に説明しておくと、
- DOループで変数 i の値を1~3まで変化させながら、
- CATS関数で "test" という文字と変数 i の値を結合します。
- その結合した文字が表すライブラリ参照をLIBNAME関数で取り消しています。
0 件のコメント:
コメントを投稿