前のページ|次のページ

MVALID関数

SASメンバ名として使用する文字列の有効性を確認します。

カテゴリ: 文字

構文

必須引数

libname

SASライブラリとライブラリ参照名を関連付ける文字定数、変数または式を指定します。先頭と末尾の空白は無視されます。

string

値をSASメンバ名として使用できるかどうかを判断するために確認する文字定数、変数または式を指定します。先頭と末尾の空白は無視されます。

member-type

使用するメンバ名のメンバの種類である文字定数、変数または式を指定します。先頭と末尾の空白は無視されます。member-typeの値は検証されません。次のメンバの種類を使用できます。

ACCESS SAS/ACCESSで作成するアクセスディスクリプタファイルを指定します。
CATALOG SASカタログを指定します。
DATA SASデータファイルを指定します。
FDB 財務データベースを指定します。
ITEMSTOR 個別にアクセス可能な情報で構成されるSASデータセットを指定します。SAS Registryは項目ストアの例です。
MDDB 多次元データベースを指定します。
PROGRAM 格納されているコンパイルしたSASプログラムを指定します。
VIEW SASビューを指定します。

オプション引数

valid-member-name

文字定数、変数または式を指定します。valid-member-nameの値には、大文字と小文字を使用できます。先頭と末尾の空白は無視されます。valid-member-nameに使用できる値を次に示します。

COMPAT

COMPATIBLE

次の3つの条件すべてを満たすとき、stringは有効なSASメンバ名であると判断されます。

  • string引数が英文字またはアンダースコアで始まる。
  • それ以降の文字はすべて英文字、アンダースコアまたは数字である。
  • stringに32文字以下の英数字が使用されている。

EXTEND

次の条件すべてを満たすとき、stringは有効なSASメンバ名であると判断されます。

  • stringの長さが32バイト以下である。
  • string引数に/ \ * ? " < > | : –が使用されていない。–
    注: SPD Engineでは、さらに'$'を最初の文字には使用できません。また、メンバ名にはピリオド(.)を使用できません。
  • string引数にNULLのバイトが使用されていない。
  • string引数が空白またはピリオド(.)で始まらない。
  • string引数に少なくとも1文字が使用されている。すべて空白である名前は無効。
デフォルト VALIDMEMNAME=はCOMPATに設定されます。
値が指定されていない場合、MVALUE関数はVALIDMEMNAME=システムオプションの値に基づいてstringが有効なSASメンバ名であることを判断します。

詳細

基本

MVALID関数は、stringの値を確認し、SASメンバ名として使用できるかどうかを判断します。
MVALID関数は、stringをSASメンバ名として使用できる場合は値1、stringをSASメンバ名として使用できない場合は値0を返します。
次の条件のいずれかを満たすと、MVALIDは欠損値を返します。
  • libname引数が、割り当てられているライブラリ参照名ではない。
  • member-type引数が9文字を超えている。
  • valid-member-name引数の値にCOMPATIBLE、COMPATまたはEXTENDのいずれも使用されていない(小文字と大文字に関係なく)。

SASメンバ名の検証の要件

string引数は、有効なSASメンバ名であるかどうかを判断するために評価されます。エンジン名、関連付けられているライブラリおよびメンバの種類がstringの検証に影響します。メンバの種類のうち、DATA、ITEMSTORおよびVIEWのみが名前に拡張文字を使用できます。stringが評価されるとき、任意のvalid-member-name引数のEXTEND値は考慮されません。すべてのエンジンでvalid-member-name処理がサポートされているわけではありません。サポートされていないエンジンの場合、stringはそのエンジンのルールに基づいて検証されます。
次の例では、MVALID関数を使用して、エンジン名、DATAメンバの種類、valid-member-nameのEXTEND値に基づいてstringが有効なSASメンバ名であるかどうかを判断する方法を示します。
libname V9eng V9 'mypath';
data _null_;
   rc=MVALID('V9eng', 'my name', 'data', 'extend');
   put rc=;
run;
次の項目が前の例に適用されます。
  • メンバの種類がDATAに等しく、valid-member-nameがEXTENDに等しいとき、'my name'がV9エンジンの有効なメンバ名であることを示す値1が返される。
  • この例でV6エンジンを使用する場合、メンバの種類がDATAに等しく、valid-member-nameがEXTENDに等しいとき、プログラムで、'my name'が無効であることを示す値0が返される。V6エンジンではvalid-member-name処理がサポートされていない。
次の例では、メンバの種類にDATAのかわりにCATALOGを使用します。
libname V9eng V9 'mypath';
data _null_;
   rc=MVALID('V9eng', 'my name', 'catalog', 'extend');
   put rc=;
run;
次の項目が前の例に適用されます。
  • この例でDATAのかわりにCATALOGを使用すると、メンバの種類がCATALOGに等しく、valid-member-nameがEXTENDに等しいとき、プログラムで、'my name'が無効であることを示す値0が返される。メンバの種類CATALOGでは拡張名がサポートされていないため、valid-member-nameのEXTEND値は無効。
  • この例でEXTENDのかわりにCOMPATを使用すると、メンバの種類がCATALOGに等しく、valid-member-nameがCOMPATに等しいとき、プログラムで、'my name'が無効であることを示す値0が返される。valid-member-nameのCOMPAT値では、メンバ名に空白を使用できない。
前のページ|次のページ|ページの先頭へ