前のページ|次のページ

FILENAMEステートメント、CATALOGアクセス方式

SASカタログを外部ファイルとして参照できます。

該当要素: 任意の場所
カテゴリ: データアクセス

構文

引数

fileref

有効なファイル参照名を指定します。

CATALOG

このアクセス方式を指定すると、SASカタログを外部ファイルとして参照できます。外部ファイルにアクセス可能なSASコマンド、ステートメント、プロシジャを使用して、SASカタログにアクセスできます。

別名 LIBRARY
ヒント このアクセス方式では、SASカタログから自動呼び出しマクロを直接呼び出すことができるようになります。
このアクセス方式では、どのタイプのカタログエントリでも読み込むことができますが、書き込めるのはLOG、OUTPUT、SOURCE、CATAMSタイプのエントリのみです。
1つのエントリではなく、カタログ全体にアクセスする場合は、catalog パラメータに2レベル名を指定する必要があります。

'catalog'

2つ、3つ、または4つの要素で構成される有効なSASカタログ名を指定します。各要素はlibrary.catalog.entry.entrytypeを示します。

デフォルト デフォルトのエントリタイプはCATAMSです。
制限事項 CATAMSエントリタイプは、CATALOGアクセス方式のみで使用されます。CPORTおよびCIMPORTプロシジャではこのエントリタイプはサポートされません。

カタログオプション

catalog-optionsには、次のいずれかを指定できます。

LRECL=lrecl

このlreclには、データの最大レコード長をバイト単位で指定します。

デフォルト 入力の場合、実際に使用するファイルのLRECLの値がデフォルト値に設定されます。出力の場合、デフォルト値は132です。
操作 代わりにXisError: No pubcode in link data found for lesysoptsrefを使用してグローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。

RECFM=recfm

このrecfmには、次の4つのレコード形式のいずれかを指定します。

F

固定長レコード形式です。データはイメージ(バイナリ)モードで転送されます。

P

出力形式です。

S

ストリームレコード形式です。データはイメージ(バイナリ)モードで転送されます。

操作 読み込むデータ量は、INFILEステートメントのNBYTE=変数で制御されます。NBYTE=オプションには、読み込まれるデータ量に等しくなる変数を指定します。このデータ量は、LRECLに指定した値に等しいか、それ以下の値にする必要があります。
SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。
参照項目 INFILEステートメントのNBYTE=オプション

V

可変長レコード形式(デフォルト設定)です。この形式ではレコードの長さが異なります。また、レコードは改行で区切られます。データはイメージ(バイナリ)モードで転送されます。

デフォルト V

DESC=description

このdescriptionには、カタログの説明をテキストで指定します。

MOD

ファイルに追加するように指定します。

デフォルト MODの指定を省略すると、ファイルは置き換えられます。

詳細

FILENAMEステートメントでCATALOGアクセス方式を使用すると、SASカタログを外部ファイルとして参照できます。外部ファイルにアクセス可能なSASコマンド、ステートメント、プロシジャを使用して、SASカタログにアクセスできます。たとえば、このカタログアクセス方式では、SASカタログから自動呼び出しマクロを直接呼び出すことができるようになります。この出力の内容についてはSASカタログから自動呼び出しマクロを実行するを参照してください。
CATALOGアクセス方式を使用すると、どのタイプのカタログエントリでも読み込むことができますが、書き込めるのはLOG、OUTPUT、SOURCE、CATAMSタイプのエントリのみです。1つのエントリではなく、カタログ全体にアクセスする場合は、catalog引数に2レベル名を指定する必要があります。

例1: カタログエントリを取り込む%INCLUDEの使用

この例では、SASUSER.PROFILE.SASINP.SOURCEに格納されているソースプログラムをサブミットします。
filename fileref1 
         catalog 'sasuser.profile.sasinp.source';
%include fileref1;

例2: 1つのカタログから複数のエントリを取り込む%INCLUDEの使用

この例では、カタログMYLIB.INCLUDEにある3つのエントリからソースコードをサブミットします。エントリタイプを指定しない場合、デフォルトのエントリタイプCATAMSに設定されます。
filename dir catalog 'mylib.include';
%include dir(mem1);
%include dir(mem2);
%include dir(mem3);

例3: CATAMSエントリの読み込みと書き込み

この例では、1つのDATAステップを使用してCATAMSエントリにデータを書き込み、書き込んだデータを別のDATAステップを使用して読み込みます。
filename mydata 
         catalog 'sasuser.data.update.catams';
   /* write data to catalog entry update.catams */
data _null_;
   file mydata;
   do i=1 to 10;
      put i;
   end;
run;
   /* read data from catalog entry update.catams */
data _null_;
   infile mydata;
   input;
   put _INFILE_;
run;

例4: SOURCEエントリへの書き込み

この例では、カタログSOURCEエントリにコードを書き込んでから、それを処理するためにサブミットします。
filename incit 
         catalog 'sasuser.profile.sasinp.source';
data _null_;
   file incit;
   put 'proc options; run;';
run;
%include incit;

例5: SASカタログから自動呼び出しマクロを実行する

SASカタログのSOURCEエントリに自動呼び出しマクロが格納されている場合、そのエントリを参照することにより、SASジョブ内でそのマクロを呼び出すことができます。次の手順を実行します。
  1. マクロのソースコードをSASカタログのSOURCEエントリに格納します。このエントリ名がマクロ名になります。
  2. LIBNAMEステートメントを使用して、SASライブラリにライブラリ参照名を割り当てます。
  3. CATALOGを指定したFILENAMEステートメントを使用して、ファイル参照名をカタログlibref.catalogに割り当てます。
  4. SASAUTOS=オプションにファイル参照名を指定して、システムにマクロの格納先を設定します。また、MAUTOSOURCEを自動呼び出し機能を有効にするように設定します。
この例では、MYSAS.MYCATというSASカタログを参照します。次に、REPORTSというマクロを呼び出します。このマクロはMYSAS.MYCAT.REPORTS.SOURCEというSASカタログエントリに格納されています。
libname mysas 'SAS-library';
filename mymacros catalog 'mysas.mycat';
options sasautos=mymacros mautosource;
%reports

関連項目:

前のページ|次のページ|ページの先頭へ