2019年11月1日金曜日

カタログからフォーマットを削除する方法






フォーマットを削除する方法1

PROC CATALOG  CAT=ライブラリ名.カタログ名;
     DELETE  フォーマット名1  フォーマット名2 ・・・ / ET=フォーマットの種類;
RUN;


  • 「DELETEステートメント」に削除したいフォーマットを列挙します。
  • 「ET=オプション」に削除する「フォーマットの種類」を指定します。
  • 「フォーマットの種類」には以下があります。
    • FORMAT   ...  数値フォーマット
    • FORMATC ...  文字フォーマット
    • INFMT       ...  数値インフォーマット
    • INFMTC    ...  文字インフォーマット



/* Sample */
proc format;
   value     a      1      = "aaa" ;
   value     $b   "aaa" = "bbb" ;
   invalue   c     "aaa" = 1 ;
   invalue   $d   "aaa" = "bbb" ;
run;

/* フォーマットの種類ごとに削除 */
proc catalog cat=work.formats;
    delete a / et=format;
    delete b / et=formatc;
    delete c / et=infmt;
    delete d / et=infmtc;
quit;



ちなみに、以下のように書くことも可能です。

proc catalog cat=work.formats;
    delete a (et=format)  b (et=formatc) c (et=infmt) d (et=infmtc);
quit;






フォーマットを削除する方法2  (注意事項あり)

PROC CATALOG  CAT=ライブラリ名.カタログ名  KILL FORCE;
RUN;


  • カタログ内の「全エントリー」を削除します。
  • 「全エントリー」とはフォーマットだけでなくマクロなどのあらゆるエントリーを含みます。
  • 「KILL」オプションは PROC CATALOG 内の他のオプションやステートメントより先に動作します。たとえばDELETEステートメントで削除するフォーマットを指定していても意味はなく、カタログ内の全エントリーを削除してしまいます。



0 件のコメント:

コメントを投稿