前のページ|次のページ

%SYSRC自動呼び出しマクロ

エラー条件に対応する値を返します。

種類: 自動呼び出しマクロ
要件 MAUTOSOURCEシステムオプション

構文

%SYSRC(character-string)

必須引数

character-string

警告条件とエラー条件のニーモニック に示されたニーモニック値のいずれか、またはニーモニック値を生成するテキスト式。

詳細

注: 自動呼び出しマクロは、SASが提供するライブラリに含まれています。このライブラリは、サイトにインストールされていないか、サイト固有のバージョンである場合があります。このマクロにアクセスできない場合、またはマクロがサイト固有のバージョンかどうか知りたい場合は、オンサイトのSASサポート担当者に問い合わせてください。詳細については、マクロの保存および再利用を参照してください。
SYSRCマクロを使用すると、SCL関数、MODIFYステートメント、およびKEY=オプション付きのSETステートメントによって生成されたリターンコードをテストできます。SYSRC自動呼び出しマクロは、エラー条件に関連付けられた数値ではなく、ニーモニック文字列を使用してエラー条件をテストします。
ニーモニック文字列を指定してSYSRCマクロを呼び出すと、SASのリターンコードが生成されます。ニーモニックは、直感的でなく変更される場合のある数値に比べて、読みやすくなっています。
SCL関数が返す値と、特定のエラーに対応するニーモニックを指定されたSYSRCマクロが返す値を比較することによって、SCL関数のエラーをテストできます。最後に実行されたMODIFYステートメントまたはKEY=オプション付きのSETステートメントのエラーをテストするには、_IORC_自動変数の値と、該当するニーモニックの値を指定して呼び出したSYSRCマクロが返す値を比較します。
次の表に、SYSRC関数で指定するニーモニック値と、それに対応するエラーの説明を示します。
警告条件とエラー条件のニーモニック
ニーモニック
説明
ライブラリの割り当てまたは割り当て解除メッセージ
_SEDUPLB
ライブラリ参照名が、別のライブラリ参照名と同じ物理ライブラリを参照しています。
_SEIBASN
指定したライブラリ参照名が割り当てられていません。
_SEINUSE
ライブラリまたはメンバを使用できません。
_SEINVLB
ライブラリが、アクセスメソッドに対して有効な形式ではありません。
_SEINVLN
ライブラリ参照名が無効です。
_SELBACC
ライブラリに対して必要なアクセス権限レベルを持っていないため、要求されたアクションを実行できません。
_SELBUSE
ライブラリが使用中です。
_SELGASN
指定したライブラリ参照名が割り当てられていません。
_SENOASN
ライブラリ参照名が割り当てられていません。
_SENOLNM
ライブラリ参照名を使用できません。
_SESEQLB
ライブラリが順次(テープ)形式です。
_SWDUPLB
ライブラリ参照名が、別のライブラリ参照名と同じ物理ファイルを参照しています。
_SWNOLIB
ライブラリが存在しません。
ファイル参照名メッセージ
_SELOGNM
ファイル参照名が無効なファイルに割り当てられています。
_SWLNASN
ファイル参照名が割り当てられていません。
SASデータセットメッセージ
_DSENMR
TRANSACTIONデータセットのオブザベーションが、MASTERデータセットに存在しません。
_DSEMTR
複数のTRANSACTIONデータセットのオブザベーションが、MASTERデータセットに存在しません。
_DSENOM
一致するオブザベーションが、MASTERデータセットに見つかりませんでした。
_SEBAUTH
このデータセットはパスワード付きです。
_SEBDIND
インデックス名が無効なSAS名です。
_SEDSMOD
データセットが、指定した操作に対して正しいモードで開かれていません。
_SEDTLEN
データ長が無効です。
_SEINDCF
新しい名前がインデックス名と競合しています。
_SEINVMD
オープンモードが無効です。
_SEINVPN
物理名が無効です。
_SEMBACC
要求したモードでデータセットを開くために必要なアクセス権限レベルを持っていません。
_SENOLCK
レコードレベルのロックを使用できません。
_SENOMAC
データセットへのメンバレベルのアクセスが拒否されました。
_SENOSAS
ファイルがSASデータセットではありません。
_SEVARCF
新しい名前が既存の変数名と競合しています。
_SWBOF
先頭のオブザベーションを指しているときに、前のオブザベーションを読み込もうとしました。
_SWNOWHR
レコードがWHERE句を満たしていません。
_SWSEQ
タスクではランダムな順序でオブザベーションを読み込む必要がありますが、使用しているエンジンではシーケンシャルアクセスのみが可能です。
_SWWAUG
WHERE句が追加されました。
_SWWCLR
WHERE句がクリアされました。
_SWWREP
WHERE句が置き換えられました。
SASファイルのオープンおよび更新メッセージ
_SEBDSNM
ファイル名が無効なSAS名です。
_SEDLREC
レコードがファイルから削除されました。
_SEFOPEN
ファイルが現在開かれています。
_SEINVON
オプション名が無効です。
_SEINVOV
オプション値が無効です。
_SEINVPS
ファイルデータバッファポインタの値が無効です。
_SELOCK
ファイルが別のユーザーによってロックされています。
_SENOACC
要求したモードでファイルを開くために必要なアクセス権限レベルを持っていません。
_SENOALL
このリリースでは、ファイル名の一部に_ALL_を使用できません。
_SENOCHN
重複が許されないインデックスの値に重複が発生するため、レコードを変更できませんでした。
_SENODEL
このファイルからレコードを削除できません。
_SENODLT
ファイルを削除できませんでした。
_SENOERT
ファイルが書き込み用として開かれていません。
_SENOOAC
要求したオープンモードに対する権限がありません。
_SENOOPN
ファイルまたはディレクトリが開かれていません。
_SENOPF
物理ファイルが存在しません。
_SENORD
ファイルが読み込み用として開かれていません。
_SENORDX
このファイルは基数でアクセスできません。
_SENOTRD
レコードがまだファイルから読み込まれていません。
_SENOUPD
エンジンが読み込み専用のため、ファイルを更新用として開けません。
_SENOWRT
メンバに対する書き込み権限がありません。
_SEOBJLK
ファイルまたはディレクトリが、別のユーザーによって排他的に使用されています。
_SERECRD
レコードが入力ファイルから読み込まれていません。
_SWACMEM
ディレクトリへのアクセスは、一度に1つのメンバに提供されます。
_SWDLREC
レコードがファイルから削除されました。
_SWEOF
ファイルの終端。
_SWNOFLE
ファイルが存在しません。
_SWNOPF
ファイルまたはディレクトリが存在しません。
_SWNOREP
NOREPLACEオプションが指定されているため、ファイルは置き換えられませんでした。
_SWNOTFL
示された項目は存在しますが、ファイルではありません。
_SWNOUPD
このレコードは、この時点では更新できません。
ライブラリ/メンバ/エントリメッセージ
_SEBDMT
メンバタイプ指定が無効です。
_SEDLT
メンバが削除されませんでした。
_SELKUSR
ライブラリまたはライブラリメンバが、別のユーザーによってロックされています。
_SEMLEN
メンバ名が、このシステム用としては長すぎます。
_SENOLKH
ライブラリまたはライブラリメンバが、現在ロックされていません。
_SENOMEM
メンバが存在しません。
_SWKNXL
まだ存在していないライブラリ、メンバ、またはエントリをロックしました。
_SWLKUSR
ライブラリまたはライブラリメンバが、別のユーザーによってロックされています。
_SWLKYOU
ライブラリまたはライブラリメンバをすでにロックしています。
_SWNOLKH
ライブラリまたはライブラリメンバが、現在ロックされていません。
その他の操作
_SEDEVOF
デバイスがオフラインであるか、使用できない状態にあります。
_SEDSKFL
ディスクまたはテープの容量に空きがありません。
_SEINVDV
デバイスタイプが無効です。
_SENORNG
書き込み用に開かれたテープに書き込みリングがありません。
_SOK
関数が正常に実行されました。
_SWINVCC
キャリッジコントロール文字が無効です。
_SWNODSK
デバイスがディスクではありません。
_SWPAUAC
入出力の一時停止。ここまで累積したデータを処理してください。
_SWPAUSL
入出力の一時停止。データウィンドウを手前に表示して、ここまで累積したデータを処理してください。
_SWPAUU1
入出力の一時停止。追加ユーザーコントロールポイント1です。
_SWPAUU2
入出力の一時停止。追加ユーザーコントロールポイント2です。

比較

SYSRC自動呼び出しマクロとSYSRC自動マクロ変数は同じではありません。詳細については、SYSRC自動マクロ変数を参照してください。

例: _IORC_の値の検査

次のDATAステップは、自動呼び出しマクロSYSRCと自動変数_IORC_を使用してSASログへのメッセージの書き込みを制御する例を示しています。
data big;
   modify big trans;
   by id;
   if _iorc_=%sysrc(_dsenmr) then put 'WARNING: Check ID=' id;
run;
前のページ|次のページ|ページの先頭へ