FTPプロトコルを使用してリモートファイルにアクセスできます。
該当要素: | 任意の場所 |
カテゴリ: | データアクセス |
制限事項: | SASがロックダウン状態にある場合、FILENAMEステートメントのFTPアクセス方式は使用できません。サーバー管理者は、このアクセス方式がロックダウン状態でも使用できるように、同方式を再有効化できます。詳細については、XisError: No pubcode in link data found for lrconを参照してください。 |
有効なファイル参照名を指定します。
注 | SAS 9.4のメンテナンスリリース3では、FTPサーバーがOPTS UTF8 ONまたはOPTS UTF-8 ON FTPプロトコルコマンドをサポートするホストは、UTF-8文字を含むファイル名をサポートします。 |
ヒント | ファイル参照名と外部ファイルの関連付けは、SASセッション終了まで維持されるか、または他のFILENAMEステートメントで関連付けの変更や関連付けの取り消しを実行するまで維持されます。ファイルに対するファイル参照名は必要に応じて何度でも変更できます。 |
このアクセス方式を指定すると、FTP(File Transfer Protocol)を使用したファイルの読み込みや書き込みを、FTPサーバーが稼働しているネットワーク上のホストコンピュータとの間で実行できるようになります。
ヒント | ホストコンピュータへの接続、FTPサーバーへのログイン、読み込みと書き込みを実行可能な指定したファイルへの出力、ホストコンピュータからの切断を実行する場合は、FTPアクセス方式を指定してFILENAMEステートメントを使用します。 |
読み込みまたは書き込みの対象となる外部ファイルの物理名を指定します。物理名には動作環境で判別できる名前を指定します。
動作環境 | 外部ファイルの物理名を指定する方法の詳細については、各動作環境向けのSASドキュメントを参照してください。 |
ヒント | ファイルの転送を実行しているのではなく、ディレクトリリストの取得などのタスクを実行している場合は、ファイル名を指定する必要はありません。ファイル名のかわりに、引用符のみをステートメントに指定してください。 ディレクトリリストの検索を参照してください。 |
ファイル参照名には、1つのファイルまたは集約記憶域を関連付けることができます。 | |
DIRオプションを指定する場合は、この引数にディレクトリを指定してください。 |
ファイル属性や属性の処理など動作環境固有の詳細情報を指定します。
動作環境 | FTPオプションの詳細については、各動作環境向けのSASドキュメントを参照してください。 |
参照項目 | FTPオプション |
FTPサーバーへの接続に使用する認証ドメインメタデータオブジェクトの名前を指定します。認証ドメインは、明示的に認証情報(ユーザーIDとパスワード)を指定する必要がない場合に、認証情報を参照します。auth-domainでは大文字と小文字が区別されます。また、二重引用符で囲んで指定する必要があります。
要件 | 認証ドメインおよび関連付けられたログイン定義はメタデータリポジトリに格納する必要があります。また、メタデータオブジェクトを解決するには、Metadata Server を稼働させる必要があります。 |
操作 | AUTHDOMAIN=を指定する場合、USER=およびPASS=を指定する必要はありません。 |
参照項目 | 認証ドメインの作成および使用方法の詳細については、SAS Intelligence Platform:Security Administration Guide. |
TLS認証を要求するFTPサーバーにFTP AUTH TLSコマンドを発行します。セキュアコマンドチャネルモードは、AUTH TLSコマンドの発行によって入力されます。
要件 | データチャネルを保護するためには、AUTHTLSコマンドを発行してコントロールチャネル保護を設定する必要があります。 |
操作 | AUTHTLS、PROT=、PBSZ=のうちいずれかのオプションを指定した場合、AUTHTLSコマンドが発行されます。FTPコントロールチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。PROT=またはPBSZ=オプションを、個別に指定するか、AUTHTLSオプションと一緒に指定すると、FTPコントロールおよびデータチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。 |
FILENAME FTPステートメントを使用してTLS認証をオンにするかわりに、SAS_FTP_AUTHTLS環境変数を定義できます。詳細については、SAS_FTP_AUTHTLS環境変数を参照してください。 | |
参照項目 | PBSZ=protection-buffer-size |
PROT=protection-level |
固定長レコード形式です。そのため、LRECLサイズのすべてのレコードには区切り文字となる改行が含まれていません。データはイメージ(バイナリ)モードで転送されます。
別名 | RECFM=F |
操作 | BINARYオプションと、S370VまたはS370VSオプションを指定する場合、BINARYオプションは無視されます。 |
このblocksizeには、データバッファのサイズをバイト単位で指定します。
デフォルト | 32768 |
作業ディレクトリを変更するコマンドを発行します。この作業ディレクトリでは、指定したdirectoryへのファイルの転送を実行します。
操作 | CDオプションとDIRオプションは相互に排他的です。両方を指定すると、FTPアクセス方式ではCDオプションが無視されます。また、情報メッセージがログに書き込まれます。 |
FTPサーバーへ送信した情報メッセージまたはFTPサーバーから受信した情報メッセージをログに書き込みます。
ディレクトリファイルまたはPDSメンバまたはPDSEメンバにアクセスできるようにします。external-file引数にディレクトリ名を指定してください。指定したホストに対して有効なディレクトリ構文を使用する必要があります。
操作 | CDオプションとDIRオプションは相互に排他的です。両方を指定すると、FTPアクセス方式ではCDオプションが無視されます。また、情報メッセージがログに書き込まれます。 |
ヒント | FTPでFILEまたはINFILEステートメントに指定したメンバ名にDATAのファイル拡張子を追加する場合は、DIRオプションと組み合わせてFILEEXTオプションを使用します。INFILEまたはFILEステートメントでファイルの拡張子を指定すると、FILEEXTオプションは無視されます。 |
FTPを使用してディレクトリを作成する場合、DIRオプションとNEWオプションを組み合わせて使用します。ディレクトリがすでに存在する場合、NEWオプションは無視されます。 | |
NEWオプションを使用せずに無効なディレクトリを指定すると、新しいディレクトリは作成されず、エラーメッセージが表示されます。 | |
同時に開くことができるディレクトリの最大数またはz/OS PDSEメンバの最大数は、FTPサーバー上で同時に開くことができるソケット数によって制限されます。同時に開くことができるソケット数は、FTPサーバーのインストール中に設定した接続数に比例します。パフォーマンスの低下を防ぐため、同時に開くことができるソケット数を制限することをお勧めします。 | |
例 | ディレクトリからの読み込みと書き込み |
外部ファイルとの読み込みや書き込みに使用するエンコーディングを指定します。ENCODING=の値は、外部ファイルのエンコーディングが現在のセッションエンコーディングとは異なることを示しています。
デフォルト | SASでは、外部ファイルのエンコーディングがセッションエンコーディングと同じであるとみなします。 |
ヒント | データはイメージ形式またはバイナリ形式で転送され、ローカルデータ形式に設定されます。そのため、データを正しく読み込むには、適切なSAS入力形式を指定する必要があります。 |
参照項目 | XisError: No pubcode in link data found for nlsref |
DIRオプションを使用するときに、FILEまたはINFILEステートメントに指定したメンバ名にDATAのメンバタイプを自動的に追加するように指定します。
ヒント | INFILEまたはFILEステートメントでファイルの拡張子を指定すると、FILEEXTオプションは無視されます。 |
参照項目 | LOWCASE_MEMNAMEオプション |
例 | ディレクトリからの読み込みと書き込み |
このhostには、FTPサーバーが稼働しているリモートホストのネットワーク名を指定します。
server.pc.mydomain.com
)またはコンピュータのIPアドレス(例:2001:db8::
)のどちらかを指定できます。
このsizeには、FTPサーバーの応答メッセージの長さを指定します。
デフォルト | 2048バイト |
範囲 | 2048から16384バイト |
制限事項 | sizeに2048未満または16384より大きい値を指定すると、sizeは2048に設定されます。 |
FTPサーバーにLISTコマンドを発行します。LISTを実行すると、作業ディレクトリの内容が各ファイルにリストされているすべてのファイル属性を含むレコードとして返されます。
ヒント | 返されるファイル属性は、アクセスするFTPサーバーによって異なります。 |
自動呼び出しマクロを使用して、FTPサーバーから小文字のディレクトリ名やメンバ名を取得できるようにします。
制限事項 | SAS自動呼び出しマクロを使用して名前を取得するときは、常に大文字のディレクトリメンバ名を探します。大文字と小文字が混在するディレクトリ名やメンバ名はサポートされていません。 |
操作 | %INCLUDE、FILE、INFILEステートメント、またはその他のDATAステップI/Oステートメントを使用してFTPサーバーのファイルにアクセスする場合は、大文字と小文字の区別は保持されます。 |
参照項目 | FILEEXTオプション |
このlreclには、データの論理レコード長を指定します。
デフォルト | 32767 |
操作 | かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、LRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。 |
FTPサーバーにLSコマンドを発行します。LSオプションを指定すると、作業ディレクトリの内容がファイル属性を持たないレコードとして返されます。
ヒント | 返されるファイル属性は、アクセスするFTPサーバーによって異なります。 |
ファイルのサブセットのリストを返すには、LSオプションの他にLSFILE=オプションを使用します。 |
LSオプションと組み合わせて使用します。作業ディレクトリからファイルのサブセットのリストを要求するために使用する文字列を指定します。文字列は一重引用符で囲みます。
制限事項 | LSFILE=オプションは、LSオプションが指定されている場合にのみ使用できます。 |
ヒント | 'character-string 'の一部にワイルドカードを指定できます。 |
返されるファイル属性は、アクセスするFTPサーバーによって異なります。 | |
例 | 次のステートメントでは、 salesで始まり、 sasで終了するすべてのファイルをリストします。filename myfile ftp '' ls lsfile='sales*.sas'
other-ftp-options; |
FTPコマンドのMGETと同じように複数のファイルを転送します。
ヒント | 転送処理全体が1つのファイルとして処理されます。ただし、新しいファイルの転送を開始するときに、EOV=変数が1に設定されます。 |
各ファイルの送信前にユーザーにプロンプトを表示するには、MPROMPTを指定します。 |
必要に応じて、MGETオプションの実行時にファイルが読み込まれることを確認するプロンプトを表示するかどうかを指定します。
制限事項 | MPROMPTオプションは、z/OS上のバッチ処理には使用できません。 |
DIRオプションの使用時に、FTPでディレクトリを作成するように指定します。
制限事項 | z/OSでは、NEWオプションは使用できません。 |
ヒント | ディレクトリがすでに存在する場合、NEWオプションは無視されます。 |
このpasswordには、USER=オプションで指定したユーザー名とともに使用するパスワードを指定します。
ヒント | PASSオプションのかわりにPROMPTオプションを指定できます。PROMPTオプションは、システムに対してパスワードの入力を求めるプロンプトを表示するように指示します。 |
ユーザー名が匿名の場合、パスワードとして電子メールアドレスを指定するようにリモートホストから要求されることがあります。 | |
暗号化されたパスワードを使用する場合、テキスト文字列を隠すためにPWENCODEプロシジャを使用します。次に、暗号化されたパスワードをPASS=オプションに入力します。詳細については、XisError: No pubcode in link data found for procを参照してください。 | |
例 | エンコードされたパスワードの使用 |
パッシブモードFTPを実行するように指定します。
注 | すべてのFTPサーバーでパッシブモードがサポートされているわけではありません。FILENAMEステートメントのFTPアクセス方式を使用してPASVコマンドを発行した後、コマンドが失敗したりサーバーでコマンドが許可されない場合は、アクティブモードFTPが接続に使用されます。 |
FTPデータチャネルの保護バッファサイズを指定します。
デフォルト | 0 |
範囲 | 0–2147483647バイト |
操作 | AUTHTLS、PROT=、PBSZ=のうちいずれかのオプションを指定した場合、AUTHTLSコマンドが発行されます。FTPコントロールチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。PROT=またはPBSZ=オプションを、個別に指定するか、AUTHTLSオプションと一緒に指定すると、FTPコントロールおよびデータチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。 |
FILENAME FTPステートメントを使用してTLS認証をオンにするかわりに、SAS_FTP_AUTHTLS環境変数を定義できます。詳細については、SAS_FTP_AUTHTLS環境変数を参照してください。 | |
注 | IBMメインフレームFTPサーバーでは、通常、PBSZ=オプションでどの値を指定しても0に変更されます。 |
ヒント | 範囲外のバッファサイズを指定した場合は、デフォルト値の0が使用されます。 |
参照項目 | AUTHTLS |
PROT=protection-level |
このportnoには、各ホスト上でFTPデーモンが監視するポートを指定します。
ヒント | インターネットコミュニティには、特定のサービス向けに事前に定義されたポート番号のリストがあります。たとえば、FTPのデフォルトポート番号は21です。ポート番号の一部のリストは、通常、UNIXコンピュータ上の/etc/servicesファイルに記載されています。 |
必要に応じて、ユーザーのログインパスワードの入力を求めるプロンプトを表示するように指定します。
制限事項 | PROMPTオプションは、z/OSのバッチ処理には使用できません。 |
操作 | PROMPTを指定してUSER=を指定しない場合、IDとパスワードの入力を求めるプロンプトがユーザーに表示されます。 |
ヒント | SAVEUSERオプションを使用すると、ユーザーIDとパスワードのプロンプトが正常に実行された後に、使用したユーザーIDとパスワードを保存することができます。 |
FTPデータチャネル保護レベルコマンドを発行します。protection-levelには、次の値のいずれかを指定できます。
FTPコントロールチャネルのセキュリティのみが提供されます。データチャネルは保護されません。
機密性保護が提供されます。
整合性チェックが提供されます。
整合性チェックと機密性保護が両方とも提供されます。
デフォルト | P |
操作 | AUTHTLS、PROT=、PBSZ=のうちいずれかのオプションを指定した場合、AUTHTLSコマンドが発行されます。FTPコントロールチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。PROT=またはPBSZ=オプションを、個別に指定するか、AUTHTLSオプションと一緒に指定すると、FTPコントロールおよびデータチャネルを保護するためにFTPサーバーとのTLSセキュリティのネゴシエートが試行されます。 |
FILENAME FTPステートメントを使用してTLS認証をオンにするかわりに、SAS_FTP_AUTHTLS環境変数を定義できます。詳細については、SAS_FTP_AUTHTLS環境変数を参照してください。 | |
参照項目 | AUTHTLS |
PBSZ=protection-buffer-size |
このcommandには、FTPサーバーに送信するFTPの'SITE'または'service'コマンドを指定します。
rcmd='site rdw'
では、データの一部としてz/OS可変長ブロックデータセットのレコード記述語(RDW)を保存します。後述のS370VおよびS370VSを参照してください。
操作 | セキュリティ権限やコマンドが利用できるかによっては、FTPサービスコマンドの一部が特定のクライアントサイトで実行されないことがあります。 |
ヒント | FTPアクセス方式を使用してファイルを転送したが、ファイルを読み込むことができない場合、FTPサーバーのUNMASK設定の変更が必要な場合があります。 |
FTPサーバーでSITE UMASK設定がサポートされている場合は、次の例に示すようにファイルの権限を変更することができます。filename in ftp '/mydir/accounting/file2.dat' host="xxx.fyi.xxx.com" user="john" rcmd='site umask 022' prompt; data _null; file in; put a $80; run; |
|
セミコロンで区切ると、複数のFTPサービスコマンドを指定することができます。いくつかの例を次に示します。rcmd='ascii;site umask 002' rcmd='stat;site chmod 0400 ~mydir/abc.txt' |
このrecfmには、次の3つのレコード形式のいずれかを指定します。
固定長レコード形式です。そのため、LRECLサイズのすべてのレコードには区切り文字となる改行が含まれていません。データはイメージ(バイナリ)モードで転送されます。
別名 | BINARY |
BINARYオプションは、FILENAME FTPステートメントのRECFM=の値より優先されます。このオプションを指定すると、強制的にバイナリ転送が実行されます。 | |
操作 | LRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。 |
ストリームレコード形式です。データはイメージ(バイナリ)モードで転送されます。
操作 | 読み込むデータ量は、現在のLRECLの値またはINFILEステートメントに指定したNBYTE=変数の値で制御されます。NBYTE=オプションには、読み込まれるデータ量に等しくなる変数を指定します。このデータ量は、LRECLに指定した値に等しいか、それ以下の値にする必要があります。 |
参照項目 | INFILEステートメントのNBYTE=オプション。 |
可変長レコード形式(デフォルト設定)です。この形式では、レコードの長さが異なります。また、レコードはテキスト(ストリーム)モードで転送されます。
操作 | LRECLの値よりも大きいレコードは切り捨てられます。 |
ヒント | IBM 370可変長形式またはIBM 370スパン可変長形式のファイルを使用している場合、RECFM=オプションのかわりにS370VまたはS370VSオプションを使用することをお勧めします。後述のS370VおよびS370VSを参照してください。 |
デフォルト | V |
操作 | RECFM=オプションと、S370VまたはS370VSオプションを指定する場合、RECFM=オプションは無視されます。 |
FTPサーバーにHELPコマンドを発行します。このコマンドの結果はレコードとして返されます。
FTPサーバーにRSTATコマンドを発行します。このコマンドの結果はレコードとして返されます。
IDとパスワードのプロンプトが正常に実行された後に、使用したユーザーIDとパスワードを保存します。
操作 | ユーザーIDとパスワードは、SASセッション終了まで維持されるか、または他のFILENAMEステートメントでファイル参照名と外部ファイルの関連付けの変更や関連付けの取り消しを実行するまで保存されます。 |
読み込むファイルがIBM 370可変長形式であることを指定します。
操作 | このオプションとRECFM=オプションを指定すると、RECFM=オプションは無視されます。 |
ヒント | データはイメージ形式またはバイナリ形式で転送され、ローカルデータ形式に設定されます。そのため、EBCDIC以外のホスト上でデータを正しく読み込むには、適切なSAS入力形式を使用する必要があります。 |
各レコードのレコード記述語(RDW)を保存するために、可変長レコード形式のz/OSデータセットを可変長レコード形式の別のz/OSデータセットに転送するときは、rcmd='site rdw'を使用します。デフォルトでは、ほとんどのFTPサーバーは、各レコードに存在するRDWを転送する前に削除します。 | |
通常、z/OS可変長レコード形式をASCIIに転送する場合や、ASCIIファイルをz/OS可変長レコード形式に転送する場合は、'SITE RDW'コマンドは必要ありません。 |
読み込むファイルがIBM 370可変長スパン形式であることを指定します。
操作 | このオプションとRECFM=オプションを指定すると、RECFM=オプションは無視されます。 |
ヒント | データはイメージ形式またはバイナリ形式で転送され、ローカルデータ形式に設定されます。そのため、EBCDIC以外のホスト上でデータを正しく読み込むには、適切なSAS入力形式を使用する必要があります。 |
各レコードのレコード記述語(RDW)を保存するために、可変長レコード形式のz/OSデータセットを可変長レコード形式の別のz/OSデータセットに転送するときは、rcmd='site rdw'を使用します。デフォルトでは、ほとんどのFTPサーバーは、各レコードに存在するRDWを転送する前に削除します。 | |
通常、z/OS可変長レコード形式をASCIIに転送する場合や、ASCIIファイルをz/OS可変長レコード形式に転送する場合は、'SITE RDW'コマンドは必要ありません。 |
このeol-charには、RECFM=Vを指定した場合に使用する改行文字を指定します。次の3つの値を使用できます。
CRLF | ラインフィード(LF)が後に続くキャリッジリターン(CR) |
LF | ラインフィードのみ(デフォルト設定) |
NULL | NULL文字(0x00) |
デフォルト | LF |
制限事項 | このオプションはRECFM=Vを指定した場合にのみ使用します。 |
このusernameはFTPサーバーにログオンするために使用されます。
制限事項 | FTPアクセス方式では、ユーザーID認証を必要とするFTPプロキシサーバーはサポートされません。 |
操作 | PROMPTを指定してUSER=を指定しない場合、IDの入力を求めるプロンプトがユーザーに表示されます。 |
ヒント | FTPアクセス方式を使用するときは、プロキシサーバーとFTPサーバーの認証情報を指定できます。FTPサーバーにログインするために必要なユーザーIDとパスワードは、user="userid@ftpservername" pass="password" host="proxy.server.xxx.com" の構文を使用し、プロキシサーバー経由で送信されます。匿名とユーザーIDの検証の両方がサポートされます。
|
例 | ディレクトリリストの検索 |
FTPの応答時間をミリ秒で指定します。
デフォルト | 1,000ミリ秒 |
ヒント | “connection closed; transfer aborted”または“network name is no longer available”というメッセージがログに表示される場合は、 WAIT_MILLISECONDSオプションを使用して応答時間を長くします。 |
FEXIST関数を使用する場合で、関数がデータセットが見つからないと返すがそのデータセットはカタログに含まれている場合、 WAIT_MILLISECONDSオプションを使って応答時間を増やします。 |
get
コマンドやput
コマンドと同じように、FTPアクセス方式を使用するとファイルのアップロードやダウンロードを実行できます。ただし、この方式では最初にファイルをシステム上に保存せずに、SASセッションに直接読み込みます。
smythe
を使用し、mvshost1
という名前のホストからディレクトリリストを取得します。次に、smythe
のパスワードの入力を求めるプロンプトを表示します。
filename dir ftp '' ls user='smythe' host='mvshost1.mvs.sas.com' prompt; data _null_; infile dir; input; put _INFILE_; run;
hp720
からディレクトリ/u/kudzu/mydata
にあるsales
という名前のファイルを読み込みます。
filename myfile ftp 'sales' cd='/u/kudzu/mydata' user='guest' host='hp720.hp.sas.com' recfm=v prompt; data mydata / view=mydata; /* Create a view */ infile myfile; input x $10. y 4.; run; proc print data=mydata; /* Print the data */ run;
winnt.pc
上でユーザーbbailey
を使用し、ディレクトリc:\remote
の中にtest.dat
という名前のファイルを作成します。
filename create ftp 'c:\remote\test.dat' host='winnt.pc' user='bbailey' prompt recfm=v; data _null_; file create; do i=1 to 10; put i=; end; run;
filename viewdata ftp 'sluggo.stat.data' user='sluggo' host='zoshost1' s370v prompt rcmd='site rdw'; data mydata / view=mydata; /* Create a view */ infile viewdata; input x $ebcdic8.; run; proc print data=mydata; /* Print the data */ run;
filename anon ftp '' ls host='130.96.6.1' user='anonymous'; data _null_; infile anon; input; list; run;
proc pwencode in= "MyPass1"; run;
(sas001)TX1QYXNzMQ==
filename myfile ftp 'sales' cd='/u/kudzu/mydata' user='tjbarry' host='hp720.hp.mycompany.com' pass="(sas001)TX1QYXMZ==";
calvin
指定し、myshost1
という名前のホストから移送データセットをインポートします。新しいデータセットはSASUSERライブラリに保存されます。ユーザーとパスワードにはSASマクロ変数を指定できます。完全修飾データセット名を指定する場合、二重引用符と一重引用符を使用してください。使用しない場合、システムによってプロファイルの接頭辞が指定した名前に追加されます。
%let user=calvin; %let pw=xxxxx; filename inp ftp "'calvin.mat1.cpo'" user="&user" pass="&pw" rcmd='binary' host='mvshost1'; proc cimport library=sasuser infile=inp; run;
calvin
を指定し、mvshost1
という名前のホストにSASライブラリを移送します。これにより、userid.mat64.cpo
という名前のホストに順編成ファイルが作成されます。レコード形式の値はfb
、lreclの値は80、blocksizeは8000に設定されます。
filename inp ftp 'mat64.cpo' user='calvin' pass="xxxx" host='mvshost1' lrecl=80 recfm=f blocksize=8000 rcmd='site blocksize=800 recfm=fb lrecl=80'; proc cport library=mylib file=inp; run;
mvshost1
上に新しいSASライブラリを作成します。FILENAMEステートメントにより、ファイル参照名が新しいデータセットに割り当てられます。インポートファイルの属性を指定するには、RCMD=オプションを使用します。LIBNAMEステートメントでは、ファイル参照名と同一のライブラリ参照名を使用し、XPORTエンジンにそれを割り当てます。PROC
COPYステップでは、MYLIBで参照されるSASライブラリからXPORTエンジンにデータセットをすべてコピーします。PROC CONTENTSステップの出力内容からコピーが正常に実行されたことがわかります。
filename inp ftp 'mat65.cpo' user='calvin'
pass="xxxx" host='mvshost1'
lrecl=80 recfm=f blocksize=8000
rcmd='site blocksize=8000 recfm=fb lrecl=80';
libname mylib 'SAS-library';
libname inp xport;
proc copy in=mylib out=inp mt=data;
run;
proc contents data=inp._all_;
run;
ftpmem1
を読み込み、他のUNIXホスト上の別のディレクトリにファイルftpout1
を書き込みます。
filename indir ftp '/usr/proj2/dir1' DIR host="host1.mycompany.com" user="xxxx" prompt; filename outdir ftp '/usr/proj2/dir2' DIR FILEEXT host="host2.mycompany.com" user="xxxx" prompt; data _null_; infile indir(ftpmem1) truncover; input; file outdir(ftpout1); put _infile_; run;
ftpout1
は、/usr/proj2/dir2/ftpout1.DATA
に書き込まれます。FILENAMEステートメントの出力ファイルにFILEEXTオプションが指定されているので、DATAのメンバタイプがftpout1
ファイルに追加されます。詳細については、FILEEXTオプションを参照してください。
filename output ftp "~user/ftpdir/" host="host.fyi.company.com" user="userid" pass="userpass" recfm=s debug; ods html body='body.html' path=output; proc print data=sashelp.class;run;
filename output1 ftp "~user/dir" fileext host="host.unx.company.com" user="userid" pass="userpass" recfm=s debug; filename output2 ftp "~user/dir" dir fileext host="host.unx.company.com" user="userid" pass="userpass" recfm=s debug; ods html body='body.html' path=output1 gpath=output2 frame='frames.html' contents='contents.html'; proc gtestit; run; quit; ;
filename test ftp ' ' ls host='proxy.server.xxx.com' user='userid@ftpservername' pass='xxxxxx' cd='pubsdir/'; data _null_; infile test truncover; input a $256.; put a=; run;