前のページ|次のページ

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

ユーザー指定のテキストからデータを読むことができます。

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

構文

引数

fileref

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

DATAURL

このアクセス方式を指定すると、data-url-specificationからデータを読むことができます。

'data-url-specification'

データを指定します。

要件 データは、次のフォーマットのどれかである必要があります。
  • data:, file-data (データは文字とURLエンコード文字からなる)。たとえば、%20%00などです。dataは小文字で指定する必要があります。
  • data:;base64, base64-data (データはbase64エンコードのデータからなる)。dataは小文字で指定する必要があります。
Base64エンコードデータ

data-url-options

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

LRECL=record-length

このlreclには、データの論理レコード長を指定します。

操作 SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。

RECFM=recfm

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

F

固定長レコード形式です。そのため、LRECLサイズのすべてのレコードには区切り文字となる改行が含まれていません。データはイメージ(バイナリ)モードで転送されます。

S

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

V

可変長レコード形式(デフォルト設定)です。この形式では、レコードの長さが異なります。また、レコードはテキスト(ストリーム)モードで転送されます。

操作 SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。

詳細

DATAURLアクセス方式はURLアクセス方式に似ています。DATAURLアクセス方式はネットワーク上の場所からデータを読むのではなく、data URL specificationから少量のデータを直接読み込みます。
data-url-specificationからは複数行のデータを読み込めます。ヌルバイトは改行文字です。

例1: シンプルなデータのアクセス

この例では、各行を終了させるURLエンコードのヌルバイトとして%00を使用して、3行のデータにアクセスします。
filename in dataurl "data:,line one%00line two%00line three%00";
  data _NULL_;
    infile in;
    input;
    list;
  run;
NOTE:The infile IN is:Filename=data:,line one%00line two%00line three%00, Lrecl=256,Recfm=Variable RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+--- 1         line one 8 2         line two 8 3         line three 10 NOTE:3 records were read from the infile IN.The minimum record length was 8.The maximum record length was 10.

例2: Base64エンコードデータ

この例ではbase64エンコードデータを使用してデータにアクセスします。
filename in dataurl "data:;base64,dGhpcyBpcyBhIGJhc2UgNjQgZW5jb2RpbmcgZXhhbXBsZS4=" ;
  data _NULL_;
    infile in;
    input;
    list;
  run;
NOTE:The infile IN is:Filename=data:;base64,dGhpcyBpcyBhIGJhc2UgNjQgZW5jb2RpbmcgZXhhbXBsZS4=, Lrecl=256,Recfm=Variable RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+--- 1         this is a base 64 encoding example.35 NOTE:1 record was read from the infile IN.The minimum record length was 35.The maximum record length was 35.

関連項目:

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