ライブラリをいっぺんに取り消す方法とは逆に、いっぺんに割り当てる方法を紹介。
たとえば、「C:\TEST」というパスに 「A」「B」「C」というフォルダがあったとします。
これらにライブラリを割り当てたいとします。
ライブラリを割り当てる構文
LIBNAME ライブラリ参照名 "割り当てるパス"; |
例
* ライブラリを割り当て ; libname mylib1 "C:\TEST\A"; libname mylib2 "C:\TEST\B"; libname mylib3 "C:\TEST\C"; |
ライブラリを割り当てる構文
リターンコードを格納する変数 = LIBNAME( "ライブラリ参照名", "割り当てるパス" ); |
- 割り当てが成功したか失敗したか、などの情報はログに表示してくれません。
- その代わり、LIBNAME関数のリターンコードには以下が格納される。
- 割り当てが成功した場合「0」
- なんらかのERROR、WARNING、NOTEなど特記事項がある場合は「0以外」(特記事項はSYSMSGという関数で取得できる)
例
* ライブラリを割り当てる ; data _null_; length msg $2000.; rc = libname( "mylib1", "C:\TEST\A" ); if rc^=0 then do; msg=sysmsg(); put msg; end; rc = libname( "mylib2", "C:\TEST\B" ); if rc^=0 then do; msg=sysmsg(); put msg; end; rc = libname( "mylib3", "C:\TEST\C" ); if rc^=0 then do; msg=sysmsg(); put msg; end; run; |
以下のようにDOループなどを使っていっぺんに割り当てたり、色々工夫の余地があります。
* ライブラリを割り当てる ; data _null_; length x msg $2000.; do x = "A", "B", "C"; i + 1; rc = libname( cats( "mylib", i ) , cats( "C:\TEST\", x ) ); if rc^=0 then do; msg=sysmsg(); put msg; end; end; run; |
0 件のコメント:
コメントを投稿