前のページ|次のページ

SASマクロのエラーメッセージ

本セクションでは、マクロの使用時に報告される可能性のあるエラーメッセージと、それらの解決方法を紹介します。エラーを解決できない場合、SASテクニカルサポートにお問い合わせください。
Error:%EVALの後にかっこで囲んだ演算式が必要です。
原因
解法
%EVAL関数の後に演算式がありません。
%EVAL関数の後に、かっこで囲んだ演算式が必要です。
%EVAL関数の後に演算式がありますが、その式がかっこで囲まれていません。
%EVAL関数の後には、かっこで囲んだ演算式を指定する必要があります。
Error: valueの後に変数名を指定してください。
原因
解法
変数名の先頭文字が数字または特殊文字になっています。
最初の文字は英字またはアンダースコアで始まらなければなりません。以降の文字には、英字、数字、またはアンダースコアを使用できます。
変数名が欠損しています。
変数名が存在していることを確認します。
Error:有効なマクロ変数名valueは32字以内です。
原因
解法
マクロ変数名の長さが32文字を超えています。
SASマクロ変数名の長さは最大で32文字までになります。
Error:マクロ変数名value は、文字またはアンダースコアで開始します。
原因
解法
SYMPUTルーチンまたはSYMPUTXルーチンの先頭引数内にある引用符で囲まれたマクロ変数名が、数字または特殊文字で始まっています。
マクロ変数名は、英字またはアンダースコアで始まる必要があります。
マクロ変数名の作成に使用されるSASデータセット変数の値が、数字または特殊文字で始まっています。
このデータセット変数内の値は、英字またはアンダースコアで始まる必要があります。
Error:シンボリック変数名valueに英文字、数字、下線(_)以外の文字が使用されています。
原因
解法
SYMPUTルーチンまたはSYMPUTXルーチンの先頭引数内にある引用符で囲まれたマクロ変数名が、特殊文字を含んでいます。
マクロ変数名は、英字、数字、またはアンダースコアのみを含んでいる必要があります。
SYMPUTルーチンまたはSYMPUTXルーチン内でマクロ変数名の作成に使用されるSASデータセット変数の値が、特殊文字を含んでいます。
このデータセット変数内の値は、文字、数字、またはアンダースコアのみを含んでいる必要があります。
Error:マクロ関数名の後の左かっこがありません。
原因
解法
使用されているマクロ関数には、引数を囲むための開始かっこが含まれていません。
使用する各マクロ関数には、開始かっこと閉じかっこを含める必要があります。
Error:マクロ関数の最大有効ネストレベル数を超えました。
原因
解法
マクロ関数が10回を超えてネストされています。
マクロ関数は、10回を超えてネストすることはできません。
マクロ変数をそれ自身に割り当てようとしました。マクロクォーティング関数が、10回を超えて繰り返される%DOループ内で使用されています。
マクロクォーティング関数が、それが不必要な場合に何回も使用されています。これに当てはまる場合、クォーティング関数を削除します。
Error:valueは無効なマクロ名です。これは、32文字以内の有効なSAS識別子でなければなりません。
原因
解法
マクロ名が、アンダースコアでも英字でもない文字で始まっています。
マクロ名の先頭にある特殊文字を削除し、同マクロ名がアンダースコアか英字で始まるようにします。
マクロ名内にピリオドがあります。
マクロ名内に含まれているピリオドを削除します。
マクロ名の長さが32文字を超えています。
マクロ名の長さを32文字以内に縮小します。
Error:%EVAL関数または%%IF条件に数値演算項でなく、文字演算項が指定されています。条件: value
原因
解法
%EVAL関数または%IFステートメントに、負の浮動小数点数を含む式が含まれています。例:
%eval(-1.2 le 2)
%IFステートメントは、整数のみを処理する暗黙の%EVAL関数を使用します。浮動小数点数を含む式を評価する場合、%EVAL関数の代わりに%SYSEVALF関数を使用します。例:
%sysevalf(-1.2 le 2)
%DOループ内のstart/stop値に、整数以外の文字が含まれています。
%DOループ内のstart/stop値には、整数を指定するか、または整数を生成するマクロ式を指定する必要があります。
演算式内に整数以外の値があります。例:
%eval(3.2+2)
%EVAL関数は、演算式または論理式を評価します。演算を行う場合、すべての値は整数でなければなりません。浮動小数点数を使用する場合、%SYSEVALFを使用します。例:
%sysevalf(3.2+2)
%EVAL関数内で整数を指定する必要がある箇所に、英字または特殊文字が指定されています。例:
 %if a+2 = 4 %then %put test;
整数以外の値を削除します。SASデータセット変数を参照する場合、このプログラムを、DATAステップのIFステートメントへと変更します。
%IFステートメントまたは%DOステートメントで、存在しないマクロ変数が参照されています。
参照されるマクロ変数が存在しており、そのマクロ変数の式に有効な値が含まれていることを確認します。
Error:定義した数よりも多い定位置指定パラメータがあります。
原因
解法
呼び出されたマクロはn個のパラメータを持つように定義されていますが、これを超える数のパラメータが呼出し時に指定されました。
マクロ定義に2つの定位置パラメータが含まれている場合、そのマクロの呼出しでも2つの定位置パラメータを指定する必要があります。
呼出し時のマクロ変数に、値としてカンマが含まれています。
カンマをテキストとして含むマクロ変数は、マクロクォーティング関数(%BQUOTEなど)で囲む必要があります。例:%test(%bquote(&var),b,c)このコード例には、&varbcという3つのパラメータ値が含まれています。
パラメータとして渡される文字列に、カンマが含まれています。
カンマを含んでいる文字列の場合、クォーティング関数(%STR関数など)を使用して、そのカンマをマスクする必要があります。例: %test(%str(a,b),c)このコード例には、a、bcという3つのパラメータが含まれています。
%STR関数がカンマをマスクするために使用されています。
%STR関数の代わりに、%BQUOTE関数または%SUPERQ関数を使用します。
Error:マクロパラメータを分けるカンマ、またはパラメータリストを閉じるかっこを指定してください。value
原因
解法
位置パラメータがキーワードパラメータよりも先行しています。2つのパラメータ間にカンマが欠落しています。例:
%macro test(c a=);
2つのパラメータ間にカンマを挿入します。例:
%macro test(c,a=);
位置パラメータの指定時に、パラメータリスト内で閉じかっこが欠落しています。
欠落している閉じかっこをパラメータリストに追加します。
定義内の位置パラメータに特殊文字が含まれています。例:
%macro test(a-b,c);
パラメータ名は、特殊文字を含まない有効なSAS名でなければなりません。
Error:valueは無効なマクロ変数名です。
原因
解法
%LOCALステートメントまたは%GLOBALステートメント内にあるマクロ変数名に、特殊文字が含まれています。例:
%GLOBAL a = b; 
特殊文字を削除します。%LOCALステートメントや%GLOBALステートメントでは、マクロ変数名にアンパサンドを付ける必要はありません。マクロ変数名は、文字またはアンダースコアで始める必要があり、その後に文字または数字を続けることができます。
Error:この%MENDステートメントと一致する%MACROステートメントがありません。
原因
解法
この%MENDステートメントと一致する%MACROステートメントが欠損しています。
%MACROステートメントを追加します。各%MENDステートメントは、それぞれ1つの%MACROステートメントに対応している必要があります。
閉じられていないコメント、セミコロンの欠損、一致しないかっこのいずれかが存在するため、%MACROステートメントを読み込むことができません。
当該%MACROステートメントの前に存在するコメントを閉じるか、セミコロンを追加するか、または閉じかっこを追加します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
Error:%EVAL関数の演算子valueの演算項が欠損しています。
原因
解法
IN演算子が使用されていますが、そのIN演算子内に値が指定されていないか、またはそのIN演算子の左のオペランドにヌル値が含まれています。
IN演算子を使用する場合、両方のオペランドが値を含んでいる必要があります。オペランドにnull値が含まれていると、エラーが発生します。
Error:SASAUTOS OPTIONが参照するファイルをオープンできません。
原因
解法
SASAUTOS=システムオプションがOPTIONSステートメント内で使用されていますが、そのSASAUTOS=システムオプションのファイル参照名は、SAS構成ファイル内に存在しないか、または同ファイル内でコメントアウトされています。
SASAUTOS=システムオプションのファイル参照名がSAS構成ファイル内に存在しており、そのファイル参照名がSASシステムが提供する自動呼出しマクロの場所を指していることを確認します。
Error:テキスト式valueはマクロ変数valueへの再帰的参照を含んでいます。マクロ変数にヌル値が割り当てられます。マクロ変数にヌル値が割り当てられます。
原因
解法
マクロ変数をそれ自体に割り当てようとしています。存在していないマクロ変数に対しては、割り当てを行えません。例:
%let a=&a
割り当てステートメントを使用する前に、割り当て先のマクロ変数が存在していることを確認します。例:
%global a; %let a=&a
Error:ローカル環境に存在する変数名(value)を%GLOBAL化できません。
原因
解法
ローカル変数としてすでに宣言されているマクロ変数に対して%GLOBALステートメントが使用されています。例:
%macro test(a);
%global a;
%mend;

%test(100) 
ローカルマクロ変数をグローバルにする必要がある場合、新しいグローバル変数を作成する必要があります。この新しいグローバルマクロ変数は、元のローカルマクロ変数に等しくなければなりません。例:
%macro test(a);
%global newa;
%let newa=&a
%mend;

%test(100)
Error:読み取り専用のマクロ変数(value)に値を割り当てできません。
原因
解法
読み込み専用のSAS自動マクロ変数に値を割り当てようとしています。例:
%let syserr=0;
読み込み専用のSAS自動マクロ変数には、値を割り当てることはできません。新しいマクロ変数を作成する場合、その変数には、SASシステムが提供する変数とは異なる名前を付ける必要があります。
Error:%ELSEに対応する%IFステートメントがありません。
原因
解法
%IFステートメントが存在していないにもかかわらず、%ELSEステートメントがサブミットされました。
%ELSEステートメントは、%IFステートメントの後に指定する必要があります。
%IFステートメントのアクションと%ELSEステートメントとの間にテキストが存在しています。たとえば、%ELSEステートメントの前に、アスタリスクスタイルのコメントが存在しています。
%ELSEステートメントは、%IFステートメントのアクションの直後に指定する必要があります。%ELSEステートメントの前にアスタリスクスタイルのコメントが存在している場合、それをPL1スタイルのコメント(/* comment */)に変更します。このスタイルのコメントは、アスタリスクスタイルのコメントとは異なるタイミングで評価されます。
Error:%ENDに対応する%DOステートメントがありません。ステートメントを無視します。
原因
解法
%DOステートメントが欠落しています。
各%ENDステートメントは、それぞれ1つの%DOステートメントに対応している必要があります。すべての%ENDステートメントがそれぞれ1つの%DOステートメントに対応している場合、閉じられていないコメントが存在しないことや、%DOステートメントの前のセミコロンが欠落していないことを確認します。
Error:%THENに対応する%IFステートメントがありません。
原因
解法
%IFステートメントが欠落しています。
各%THENステートメントは、それぞれ1つの%IFステートメントに対応している必要があります。すべての%THENステートメントがそれぞれ1つの%IFステートメントに対応している場合、閉じられていないコメントが存在しないことや、%IFステートメントの前のセミコロンが欠落していないことを確認します。
Error:%IFステートメントはオープンコードでは無効です。
Error:%THENステートメントはオープンコードでは無効です。
Error:%ELSEステートメントはオープンコードでは無効です。
Error:%DOステートメントはオープンコードでは無効です。
Error:%ENDステートメントはオープンコードでは無効です。
Error:%LOCALステートメントはオープンコードでは無効です。
Error:%GOTOステートメントはオープンコードでは無効です。
Error:%ABORTステートメントはオープンコードでは無効です。
Error:%RETURNステートメントはオープンコードでは無効です。
原因
解法
これらのステートメントは、マクロ定義の外部で実行されます。
これらのステートメントはすべて、%MACROステートメントとの%MENDステートメントの間に記述する必要があります。
これらのステートメントは、%INCLUDEステートメントによりインクルードされるファイル内に記述されています。
マクロ内にある%INCLUDEステートメント内に記述されたステートメントは、当該マクロ内では実行されません。%INCLUDEステートメントで指定するコード行は、スタンドアロンのコードでなければなりません。
閉じられていないコメントや、対になっていない引用符が存在するか、または%MACROステートメントの前のセミコロンが欠落しています。
すべてのコメントを閉じ、すべての引用符を一致させ、すべてのステートメントにセミコロンが付けられていることを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
Error:%GOTOステートメントに分岐先の指定がありません。ステートメントを無視します。
原因
解法
%GOTOステートメント内でラベルとして使用されているマクロ変数がヌル値を含んでいます。
%GOTOステートメントのラベルは、有効なSAS名でなければなりません。
Error:マクロvalue に%GOTOステートメントが含まれていますが、有効なラベル名が定義されていません。マクロはコンパイルされません。
原因
解法
%GOTOステートメントが、存在しないラベルを指しています。
各%GOTOステートメントは、パーセント記号で始まりコロンで終わる有効なラベルステートメントを含む必要があります。
閉じられていないコメントや、対になっていない引用符が存在するか、または%LABELステートメントの前のセミコロンが欠落しています。
すべてのコメントを閉じ、すべての引用符を一致させ、すべてのステートメントにセミコロンが付けられていることを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
ラベルが、有効なSAS名ではありません。例:
%a-1:
ラベルは、特殊文字を含まない有効なSAS名でなければなりません。
Error:マクロvalueの%GOTOステートメントの分岐先valueがラベルvalueに展開されましたが、ラベルが見つかりません。
原因
解法
%GOTOステートメント内のラベル名の前にパーセント記号が付いています。例:
%goto %a;
パーセント記号を削除します。マクロを呼び出してラベル名を返したい場合、そのマクロにはセミコロンなしの有効なラベル名だけが含まれていることを確認します。
%GOTOステートメント内のラベル名の前にアンパサンドが付いています。例:
%goto &a;
マクロ変数が存在しており、それが有効なラベル名の値を返すことを確認します。
Error:マクロvalueの%GOTOステートメントの分岐先valueがラベルvalueに展開されましたが、ステートメントラベルが無効です。
原因
解法
ラベルが、ラベル名として有効でない文字を含んでいるマクロまたはマクロ変数です。
マクロ呼出しまたはマクロ変数がラベルとして有効なSAS名を返すことを確認します。ラベル名がマクロ呼出しにより生成される場合、そのラベル名の末尾にセミコロンが付いていないことを確認します。
%GOTOステートメントに、有効なSAS名でないラベルが含まれています。例:
%goto a-1; 
%GOTOステートメントに、特殊文字を含んでいない有効なSAS名であるラベルが含まれていることを確認します。
Error:valueは%DOループのインデックス変数のマクロ変数名としては無効です。
原因
解法
インデックス変数が、有効なSAS名ではありません。例:
%do 1a=1 %to 3;
インデックス変数は、英字またはアンダースコアで始まり、その後に英字または数字が続く有効なSAS名でなければなりません。例:
%do a1=1 %to 3;
インデックス変数にアンパサンドが含まれていますが、そのアンパサンドに続くトークンに該当するような名前のマクロ変数は存在しません。
アンパサンドを削除するか、有効なSAS名を含むマクロ変数を事前に作成しておきます。
インデックス変数にアンパサンドが含まれていますが、そのアンパサンドに続くトークンをマクロ変数として置換すると、ヌル値かまたは無効なSAS名が生成されます。
インデックス変数に含まれているマクロ変数が有効なSAS名に置換されることを確認します。
Error:value値(%DO  valueループ)は無効です。
原因
解法
FROM値またはTO値のどちらかが整数値ではありません。
FROM値およびTO値は整数であるか、または整数を生成するマクロ式でなければなりません。
Error:%DOvalueループの%BY値は0です。
原因
解法
%BYステートメントの値がゼロであるか、またはゼロに置換されるマクロ変数が%BYステートメントの値として使用されています。
%BYステートメントの値は、整数(ゼロを除く)であるか、または整数に置換されるマクロ式でなければなりません。
Error:ウィンドウマクロファイルvalueをオープンできません。
原因
解法
%DISPLAYステートメント内に含まれているマクロウィンドウ名は存在しません。
%DISPLAYステートメントを記述する前に、その%DISPLAYステートメントに含まれている名前と同じものを%WINDOWステートメントで定義する必要があります。
%WINDOWステートメントのコードが、%DISPLAYステートメントの前にコンパイルされませんでした。
閉じられていないコメントや、対になっていない引用符が存在しないこと、または%WINDOWステートメントの前のセミコロンが欠落していないことを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
Error:必要な%TOが、%DOステートメントに見つかりません。
原因
解法
%TOステートメントが、反復%DOループ内に存在しません。例:
%do i=1 3;
反復%DOループには、%TOステートメントが含まれている必要があります。例:
%do i=1 %to 3;
Error:valueは無効なマクロパラメータ名です。これは、32文字以内の有効なSAS識別子でなければなりません。
原因
解法
マクロ定義内にあるパラメータ名にアンパサンドが含まれています。
アンパサンドを削除します。マクロ定義内で指定されるパラメータ名には、アンパサンドを含めることはできません。
マクロ定義内にあるパラメータ名にパーセント記号が含まれています。
パーセント記号を削除します。マクロ定義内で指定されるパラメータ名には、パーセント記号を含めることはできません。
パラメータ名の長さが32文字を超えています。
マクロ変数名の長さは最大で32文字までになります。
Error:等号(=)がvalueステートメントに必要です。
原因
解法
マクロ定義内の%LETステートメントに等号が含まれていません。
%LETステートメントには、等号とそれに続くマクロ変数名を含める必要があります。
マクロ定義内の%SYSLPUTステートメントまたは%SYSRPUT%LETステートメントに、等号が含まれていません。
%SYSLPUTステートメントや%SYSRPUTステートメントには、マクロ変数名、等号、そのマクロ変数の値をこの順番で含める必要があります。
読み込み専用のマクロ変数を作成する際、%GLOBALステートメントまたは%LOCALステートメントに、等号が含まれていません。例:
%global / readonly newtest;
読み込み専用のマクロ変数を作成する場合、%GLOBALステートメントまたは%LOCALステートメントに等号を含める必要があります。例:
%global / readonly newtest=100;
Error:%DOステートメントに不必要なセミコロン(:)があります。
原因
解法
%DOステートメント内で、インデックス変数の後に等号がありません。
インデックス変数名の後に等号を記述します。例:
%do i=1 %to 3;
Error:%EVAL関数に計算する演算式がないか、または%IFステートメントに条件式がありません。
原因
解法
%IFステートメント内で、%THENステートメントの前に、評価するための式がありません。
%IFステートメントと%THENの間に、評価するための式を追加します。
%DO %UNTILステートメントまたは%DO %WHILEステートメント内で、かっこの間にテキストがありません。
%DOステートメントは、評価するための式を必要とします。
%EVAL関数で、かっこの間にテキストがありません。
%EVAL関数は、評価するための式を必要とします。
式を生成するために使用されている関数がヌル値を返します。例:
%if %eval(a) %then
その関数が有効な式を返すことを確認します。
Error:必要な演算子が式の中に見つかりません:value
原因
解法
使用されているマクロ関数内に余計な閉じかっこがあります。
余計な閉じかっこを削除します。
%IFステートメント内で、かっこの後にコロンがあります。
マクロ変数にコロンを含んでいる場合、そのマクロ変数に対して%SUPERQ関数を適用するか、またはテキストに対して%STR関数を適用します。
%IFステートメントなどのマクロステートメントで、SAS関数が使用されています。
そのSAS関数に対して%SYSFUNC関数を適用します。
マクロ機能でIN演算子が使用されています。
IN演算子を使用する前に、MINOPERATORシステムオプションを指定する必要があります。
マクロがステートメント(%IFステートメントなど)から呼び出されていますが、そのようなマクロは存在しません。
呼び出されるマクロがコンパイル済みであることを確認します。呼び出されるマクロが自動呼出しマクロである場合、SASAUTOS=システムオプションがそのマクロの場所を指していることを確認します。
Error:マクロ関数valueの引数が多すぎます。
原因
解法
使用されている関数で指定されている引数の数が多すぎます。たとえば、%SUBSTR関数の引数は3つであるにもかかわらず、%substr(abcd,1,2,3)のように記述されています。
必要な引数の数が合っていることを確認します。テキスト文字列にカンマが含まれている場合、そのテキストに%STR関数を適用します。
引数として参照されているマクロ変数に、カンマが含まれています。
そのマクロ変数に対してクォーティング関数(%BQUOTE関数など)を適用し、カンマをマスクします。
Error:マクロ関数valueの引数が足りません。
原因
解法
使用されている関数で指定されている引数の数が少なすぎます。たとえば、%SUBSTR関数の引数は2つ以上であるにもかかわらず、%substr(abcd)のように記述されています。
必要な引数の数が合っていることを確認します。
Error:value個のクローズしていない%DOステートメントがありました。マクロvalueはコンパイルされません。
原因
解法
%DOステートメントに対応する%ENDステートメントがありません。
すべての%DOステートメントには、対応する%ENDステートメントが必要となります。
%ENDステートメントの前に、セミコロンが欠けているか、閉じられていないコメントがあるか、または対になっていない引用符が存在します。
%ENDステートメントの前に記述されているすべてのコメントが閉じられていること、すべてのステートメントの末尾にセミコロンがあること、すべての引用符が対になっていることを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
Error:引数value(マクロ関数value)は数値ではありません。
原因
解法
%SCAN関数または%QSCAN関数の第2引数に、整数ではなく文字値が指定されています。
%SCAN関数または%QSCAN関数の第2引数には、整数を指定するか、または整数に置換される式を指定する必要があります。
%SUBSTR関数または%QSUBSTR関数の第2引数または第3引数に、整数ではなく文字値が指定されています。
%SUBSTR関数または%QSUBSTR関数の第2引数または第3引数には、整数を指定するか、または整数に置換される式を指定する必要があります。
Error:条件value(%DOvalueループ)は無効または欠損値valueです。マクロの実行を中止します。
原因
解法
%DO %UNTILステートメントまたは%DO %WHILEステートメント内の条件が、ヌル値または数値以外の文字へと置換されます。
%DO %UNTILステートメントまたは%DO %WHILEステートメント内のマクロ式は、論理値へと置換される必要があります。この式の値がゼロ以外の整数である場合、この式はtrueになります。この式の値がゼロである場合、この式はfalseになります。
Error:反復%DOへの分岐は無効です。
原因
解法
%DO %ENDステートメント内に%GOTOステートメントのラベルがあります。
そのラベルを反復%DOループの外部へと移動します。
Error:%EVALに無効な0による割り算があります。
原因
解法
%EVAL関数内で、計算の分母がゼロになっています。
分母をゼロ以外の値に変更します。
%IFループまたは%DOループ内の式に、分母がゼロである計算が含まれています。
その式に分母がゼロである計算が含まれていないことを確認します。
Error:キーワードパラメータvalueはマクロ定義されていません。
原因
解法
マクロ呼出しで指定されているキーワードパラメータは、定義に存在しません。
呼出しで使用されている各パラメータが定義にも存在することを確認します。
パラメータ値に等号が含まれています。
そのマクロ呼出しの値に対して%STR関数を適用します。例:
%test(%str(a=100)) 
Error:マクロ変数名がブランクまたは欠損です。
原因
解法
CALL SYMPUTXルーチンまたはCALL SYMPUTルーチン内の第1引数で、1組の引用符の間にテキストがありません。
マクロ変数名を作成するには、第1引数に有効なSAS名を指定する必要があります。
CALL SYMPUTルーチンまたはCALL SYMPUTXルーチン内でマクロ変数名として使用されているDATAステップ変数に、値が含まれていません。
そのDATAステップ変数に有効なSAS名が含まれていることを確認します。
Error:必要な%THENステートメントがありません。
原因
解法
%IFステートメントで、式の後に%THENステートメントがありません。
%IFステートメントで、式の後に%THENステートメントを追加します。
Error:エラーが発生したため、%WINDOWステートメントは処理されません。
原因
解法
%WINDOWステートメントの名前の後にセミコロンが付けられています。例:
%window test;
ウィンドウ名の後のセミコロンを削除します。例:
%window test 
%WINDOWステートメントに続く名前が有効なSAS名ではありません。
%WINDOWステートメントに続く名前が有効なSAS名であることを確認します。
Error:無効な%DISPLAYオプションvalueです。
原因
解法
%DISPLAYステートメントに続く名前が有効なSAS名ではありません。
%DISPLAYステートメントに続く名前が有効なSAS名であることを確認します。
Error:%DISPLAY WINDOW/WINDOW.GROUP名は無効なSAS名です。
原因
解法
%DISPLAYステートメントでピリオドに続く名前が有効なSAS名ではありません。
%DISPLAYステートメントに指定されたウィンドウ名とグループ名が有効なSAS名であることを確認します。
Error:オーバーフローが発生しました。評価は終了します。
原因
解法
%SYSEVALF関数または%EVAL関数内の値が1.79e308を超えています。
その値が1.79e308未満であることを確認するか、またはその値を引用符で囲むことで、それがテキスト値として扱われるようにします。
Error:%GOの後にTOがありません。
原因
解法
%GOTOステートメントのTOオプションがありません。
%GOTOステートメントが正しく記述されていることを確認します。
Error:%GOTOステートメントのターゲットは予約マクロキーワードvalueです。
原因
解法
%GOTOステートメントのラベル部が、マクロ機能の予約語になっています。
その%GOTOラベルを、予約語以外の値へと変更します。詳細については、 マクロ機能の予約語を参照してください。
Error:すべての位置パラメータは、キーワードパラメータより前にしてください。
原因
解法
等号付きのパラメータが、等号なしのパラメータよりも前に指定されています。
キーワードパラメータ(等号付きのもの)と位置パラメータ(等号なしのもの)を一緒に指定する場合、すべての位置パラメータをキーワードパラメータよりも前に指定する必要があります。
パラメータ値に、同パラメータにとってはテキストを意味するカンマが含まれています。
%STR関数を使用して、マクロに渡される文字列をマスクします。例:
%test(1,a=%str(4,f))
Error:キーワードパラメータvalue(マクロvalueに渡されるパラメータ)に値が2回提供されています。
原因
解法
同じパラメータ名が、1つのマクロ呼出しで複数回リストされています。
各パラメータ名は、パラメータリスト内に1度だけ現れます。
Error:%DOvalueループのインデックス変数の値が無効または欠損値です。マクロの実行を中止します。
原因
解法
マクロの%DOステートメントのインデックス変数が、ループ内で欠損値または数値以外の値に設定されています。
ループ内にネストされているマクロ呼出しがある場合、その%DOインデックス変数がネストされたマクロ内でリセットされないことを確認します。そのインデックス変数名を変更するか、またはネストされているマクロ内にある一致する名前を変更します。
Error:%WINDOWまたは%DISPLAYステートメントがコマンド行から呼び出されるマクロvalueで発生しました。このリリースのSAS Systemでは、このようなマクロは入力のプライマリソース(プログラムエディタ)からしか呼び出されません。
原因
解法
%WINDOWステートメントを含むマクロ定義が、コマンドラインから呼び出されています。
このようなマクロは、コマンドラインからではなく、Program EditorやEnhanced Editorから呼び出します。
Error:リテラルに対でない引用符があります。
原因
解法
対になっていない引用符(または単一のアポストロフィ)が値に含まれています。
問題の引用符が対になるように修正します。対になっていない引用符(または単一のアポストロフィ)がテキストの一部である場合、マクロクォーティング関数(%STRなど)を使用します。例:
%str(joe%’s diner)
対になっていない引用符(または単一のアポストロフィ)の前にはパーセント記号を付けます。
Error:SASシステムがマクロライブラリをオープンできません。
原因
解法
コンパイル済みマクロが、SASシステムのあるリリースから別のリリースへと移動されたか、またはあるオペレーティングシステムから別のオペレーティングシステムへと移動されました。
コンパイル済みマクロは、別のオペレーティングシステムやSASシステムの別のリリースには移動できません。同じマクロを別の動作環境やSASシステムの別のリリースで使用したい場合、そのマクロを別の環境または別のリリースで再コンパイルする必要があります。
ユーザーが正しい使用権を持っていないWorkディレクトリに残存ファイルが存在しています。
そのWorkディレクトリをクリーニングします。次のSAS Noteを参照してください。http://support.sas.com/kb/8/786.html.
NOWORKINITシステムオプションが設定されています。
WORKINITシステムオプションが設定された状態でジョブを実行します。
Error:AS Systemはマクロvalueをマクロライブラリに書き込めません。
原因
解法
SASMSTORE=システムオプションに指定されている固定的な場所を出力先として、マクロをコンパイルしようとしました。
出力先のSASMACRカタログが破損しているか、または同カタログには、SASシステムの別のリリースまたは別のオペレーティングシステム向けに作成されたコンパイル済みマクロが含まれています。出力先を新しい場所に変更します。
Error:value句の後に必要なセミコロンがありません。
原因
解法
定義のマクロ名に対するマクロ変数参照が存在します。例:
%macro test&i; 
マクロ名は、有効なSAS名でなければなりません。%MACROステートメントでは、テキスト式を使用したマクロ名の生成は行えません。
%MACROというワードが、1つのマクロ呼出し内で繰り返されています。
マクロを呼び出す場合、%MACROというワードをそのマクロ呼出しの前に含めないようにします。
マクロ変数が、オプションを宣言するためにマクロ定義行で参照されています。
マクロ定義行では、オプションを生成するためにマクロ変数を使用することはできません。そのマクロ変数を削除し、必要なオプションをハードコーディングします。
Error:マクロがオープンコードで再帰的に使用されています。
原因
解法
マクロ内のステートメントの末尾にセミコロンがありません。
セミコロンを必要とするすべてのステートメントの末尾にセミコロンがあることを確認します。閉じられていないコメントがないことを確認します。コメントが閉じられていないことが原因で、セミコロンが認識されない場合があります。修正を行った後、次のコードを実行します。
*'; *"; *); */; %mend; 
run;
関数で、開始かっこまたは閉じかっこのどちらかが欠落しています。
すべての開始かっこは、対応する閉じかっこと対になっている必要があります。修正を行った後、次のコードを実行します。
*'; *"; *); */; %mend; 
run; 
対になっていない引用符、かっこ、閉じられていないコメントのいずれかを含んでいる関数で、マクロ変数が参照されています。
そのマクロ変数に対してマクロクォーティング関数(%SUPERQ関数など)を適用します。%SUBSTR関数を使用している場合、それを%QSUBSTR関数で置き換えます。
マクロの内部でアスタリスク(*)スタイルのコメントが使用されています。
マクロの内部では、アスタリスク(*)スタイルのコメントは使用できません。マクロの内部では、PL1スタイルのコメント/* */を使用します。
関数(%SUBSTR関数など)内にあるマクロ変数が引用符で囲まれています。例:
%let temp=%substr(“abc”,1,2);
マクロ変数を囲んでいる引用符を削除します。
Error:ダミーマクロをコンパイルします。
原因
解法
マクロプロセッサは、マクロのコンパイル時に構文エラーを検出すると、そのマクロの残りの部分でも同じ構文をチェックします。追加のエラーが検出されるとメッセージが発行されます。ただし、マクロプロセッサは、実行用のマクロを格納しません。マクロプロセッサによってコンパイルされるが格納されないマクロのことを、ダミーマクロと呼びます。
構文を修正した後、そのマクロを再度コンパイルします。
Error:%DISPLAYステートメントにWINDOW/WINDOW.GROUPNAMEの指定が必要です。
原因
解法
ウィンドウ名を含んでいない%DISPLAYステートメントがサブミットされました。例:
%display;
%DISPLAYステートメントの後にマクロウィンドウ名を指定する必要があります。例:
%display test;
Error:マクロキーワードvalueは現在有効ではありません。
原因
解法
エラーメッセージで参照されているキーワードはマクロ機能の1つですが、まだ利用可能ではありません。
この機能を含んでいるSASシステムの正しいリリースを実行していることを確認します。
Error:valueペインはウィンドウvalueに定義されていません。
原因
解法
%DISPLAYステートメントにグループ定義を表すピリオドが含まれていますが、%WINDOWステートメントではそのようなグループは定義されていないか、またはそのグループ名のスペルが誤って記述されています。
そのピリオドを%DISPLAYステートメントから削除します。グループが%WINDOWステートメントで作成されている場合、そのグループ名のスペルが正しいことを確認します。
Error:%WINDOW名valueが無効なSAS名です。
原因
解法
マクロウィンドウ名の長さが32文字を超えています。
そのマクロウィンドウ名を32文字以下の名前に変更します。
%WINDOW GROUP=名valueは無効なSAS名です。
原因
解法
マクロウィンドウグループ名の長さが32文字を超えています。
そのマクロウィンドウグループ名を32文字以下の名前に変更します。
Error:Mマクロキーワードvalueは、テキストのように表示されます。
原因
解法
エラーメッセージによりフラグが設定されているステートメントの前の行にセミコロンがありません。
欠落しているセミコロンを追加します。SASを対話的に実行している場合、SASセッションの再起動が必要となる場合もあります。
エラーメッセージによりフラグが設定されているステートメントの前の行に、対になっていないかっこがあります。
欠落しているかっこを追加します。SASを対話的に実行している場合、SASセッションの再起動が必要となる場合もあります。
マクロ定義の%LETステートメント内で、マクロステートメントが誤って使用されています。例:
%let x= %put test;
マクロステートメントは、%LETステートメントの内部では使用できません。上記の例に示した%LETステートメントを次のように変更します。
%let x=%nrstr(%put test;);
Error:SASMACRマクロカタログのマクロ名valueと内部マクロヘッダー名valueが一致しません。再コンパイルしてください。
原因
解法
対になっていないかっこがマクロ呼出しに含まれています。
かっこが対になっていることを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
マクロの内部に、対になっていないかっこ、引用符、コメントがあります。
かっこ、引用符、コメントがすべて対になっていることを確認します。修正を行った後、SASセッションの再起動が必要がとなる場合もあります。
外側のマクロと同じ名前を持つ、部分的にネストされているマクロ定義が存在します。
そのネストされているマクロ定義を削除します。ネストが必要な場合、マクロ名が異なっていることを確認します。ベストプラクティスとしては、マクロ定義ではなく、マクロ呼出しをネストすることをお勧めします。
Error:マクロライブラリが破損しました。マクロvalueをコンパイルできません。
原因
解法
コンパイル済みマクロが、それがコンパイルされたオペレーティングシステムとは別のオペレーティングシステムにコピーされたか、またはそれがコンパイルされたSASシステムのリリースとは別のリリースにコピーされました。
コンパイル済みマクロのカタログエントリは、それがコンパイルされたオペレーティングシステムと同じオペレーティングシステム上の、それがコンパイルされたSASシステムのリリースと同じリリース上でのみ実行できます。コンパイル済みマクロを異なるオペレーティングシステム間またはSASシステムの異なるリリース間で移動することはサポートされていません。同じマクロを別の動作環境やSASシステムの別のリリースで使用したい場合、そのマクロを別の環境または別のリリースで再コンパイルする必要があります。
コンパイル済みマクロが、別のオペレーティングシステムまたはSASシステムの別のリリース上で生成されたマクロを含むSASMACRカタログに永久保存されます。
新しいSASMACRカタログを作成するには、新しい場所でマクロをコンパイルします。
Error:コマンド行で%WINDOWまたは%DISPLAYステートメントが使用されました。現在のSAS Systemのリリースでは、このようなステートメントはPROGRAM EDITORからしか使用できません。
原因
解法
%WINDOWステートメントまたは%DISPLAYステートメントが、コマンドライン上でサブミットされようとしました。
%WINDOWステートメントや%DISPLAYステートメントは、Program EditorまたはEnhanced Editor内でサブミットする必要があります。
Error:Window valueのKEYSをロードできません。
原因
解法
KEYS=オプションに存在しない値が設定されています。
KEYS=オプションの値は、有効なlibref.catalogの組み合わせでなければなりません。
Error:%SYSRPUTステートメントはOPTION DMRが指定してある場合のみ有効です。
原因
解法
SASシステムの起動時にNODMRシステムオプションが設定されているにもかかわらず、%SYSRPUT関数を使おうとしました。
%SYSRPUT関数を使用できるようにするには、DMRシステムオプションを設定する必要があります。
Error:マクロvalueは予約名です。
原因
解法
マクロ関数またはマクロステートメントと同じ名前のマクロを定義しようとしました。(これには、SASシステムが提供する自動呼出しマクロは含まれていません。)
ユーザー定義マクロを命名する場合、マクロの命名規則に従う必要があります。詳細については マクロ機能の予約語を参照してください。
Error:%DO %WHILEへ無効な分岐です。
原因
解法
%DO %WHILEループの内部で%GOTOロジックを使おうとしました。
%DO %WHILEループの内部では%GOTO構文は使用できません。%GOTO構文をループから削除します。
Error:%DO %UNTILへ無効な分岐です。
原因
解法
%DO %UNTILループの内部で%GOTOロジックを使おうとしました。
%DO %UNTILループの内部では%GOTO構文は使用できません。%GOTO構文をループから削除します。
Error:%MACROステートメント上での余分なテキストは無視しました。
原因
解法
マクロステートメントに、無効なオプションが続くスラッシュ(/)が含まれています。
有効なオプションのみが%MACROステートメント内で使用できます。有効なオプションのリストを次に示します。
CMD
DES=
MINDELIMITER=
MINOPERATOR
PARMBUF
SECURE | NOSECURE
STMT
SOURCE | SRC
STORE
Error:/STOREマクロステートメントオプションに対して、MSTOREDオプションをセットしてください。
原因
解法
/STOREオプションが%MACROステートメント内で使用されていますが、MSTOREDシステムオプションが設定されていません。
/STOREオプションを%MACROステートメント内で使用する前に、OPTIONSステートメントでMSTOREDシステムオプションを指定します。
Error:%MACROステートメントオプションの構文は/DES="説明"です。
原因
解法
DES=オプションで使用される説明が引用符で囲まれていません。
%MACROステートメント内のDES=オプションの値は引用符で囲む必要があります。
Error:WORK.SASMACRカタログは一時カタログのため、コンパイルされ格納されているマクロには使用できません。OPTION SASMSTOREを他のライブラリ参照名に変更してください。
原因
解法
SASMSTORE=オプションの値がWorkライブラリに設定されています。
SASMSTORE=オプションの値を、Workライブラリ以外の有効なライブラリに設定します。
Error:SASMSTORE=オプションの参照名がセットされていません。
原因
解法
MSTOREDシステムオプションが設定され、マクロが/STOREオプション付きで定義されていますが、SASMSTORE=システムオプションが設定されていません。
STOREオプションを%MACROステートメント内で使用する場合、SASMSTORE=システムオプションの値を有効なライブラリに指定します。
Error:マクロ関数呼び出し後に閉じかっこがありません。
原因
解法
マクロ関数の使用時に、閉じかっこが欠けています。
すべてのマクロ関数の構文では、開始かっこと閉じかっこのペアが必要となります。
Error:マクロパラメータに構文エラーがあります。
原因
解法
パラメータ値に開始かっこはあるが閉じかっこがない場合に、CALL EXECUTEによるマクロを呼び出そうとしました。
パラメータに含まれている対になっていないかっこは、%STRを使用してマスクした上で、そのかっこの前にパーセント記号を付ける必要があります。次に例を示します。
call=cats('%test(%str
(',tranwrd(tranwrd(x,
'(','%('),')','%)'),'))');                                                                  
call execute(call);
Error:%SYSFUNCまたは%QSYSFUNCマクロ関数で参照されているvalue関数がありません。
原因
解法
存在しない関数が%SYSFUNC内にリストされています。
関数ドキュメントをチェックし、%SYSFUNC関数の第1引数が有効であることを確認します。
%SYSFUNC関数で、PUT関数またはINPUT関数を使おうとしました。
PUTまたはINPUT関数ではなく、INPUTC、INPUTN、PUTC、PUTN関数を使用します。
Error:%SYSFUNCまたは%QSYSFUNCマクロ関数で参照されている関数valueにある引数は多すぎます。
原因
解法
関数の構文で、引数の数よりも多くの数のカンマが検出されました。その関数の引数の1つがマクロ変数であり、そのマクロ変数の置換後の値にカンマが含まれている可能性があります。
関数で正しい構文が使用されていることを確認します。
エラーを引き起こしているカンマが、関数で使用されているマクロ変数の置換後の値に含まれている場合、%BQUOTE関数を使用してその変数をマスクする必要があります。
Error:%SYSFUNCまたは%QSYSFUNCマクロ関数で参照されている関数valueにある引数は少なすぎます。
原因
解法
一部の必須引数が、関数の構文にリストされていません。
エラーメッセージに表示されている関数のドキュメントを参照し、すべての必須引数がリストされていることを確認します。
Error:%%SYSFUNCまたは%%QSYSFUNCマクロ関数で参照されている引数 value(関数value)は数値ではありません。
原因
解法
数値を指定する必要がある引数に、数値以外の値が指定されています。
エラーメッセージに表示されている関数のドキュメントを参照します。数値を必要とする引数に数値が指定されていることを確認します。
Error:%SYSEVALFの後に、かっこで囲んだ演算式が必要です。
原因
解法
評価対象となる式がかっこで囲まれていません。
評価対象となる式はかっこで囲む必要があります。
Error:%SYSFUNC、%QSYSFUNCまたは%SYSCALLで参照される関数valueは、MACRO関数/呼び出しルーチンインターフェイス内で使用できません。
原因
解法
承認されていない関数が、%SYSFUNC関数の第1引数として使用されています。
次に示す各種の情報関数は、%SYSFUNC関数では使用できません。
ALLCOMB LEXCOMBI
ALLPERM LEXPERK
DIF LEXPERM
DIM LEXCOMB
HBOUND MISSING
IORCMSG PUT
INPUT RESOLVE
LAG SYMGET
LBOUND
Error:未定義の%%SYSEVALF変換演算子valueが指定されました。変換を終了します。
原因
解法
%SYSEVALF構文に指定されている変換タイプが無効です。
%SYSEVALF関数の第2引数として有効な値を次に示します。
BOOLEAN FLOOR
CEIL INTEGER
Error:%SYSEVALF ROUND変換操作はサポートされていません。
原因
解法
%SYSEVALF構文で、変換タイプとして‘ROUND’を指定しようとしました。
%SYSEVALF関数の第2引数として有効な値を次に示します。
BOOLEAN FLOOR
CEIL INTEGER
Error:変換操作の要求時に、%SYSEVALFが欠損値を検出しました。変換は停止されます。
原因
解法
%SYSEVALF関数により評価される式の中に欠損値が存在し、変換タイプが使用されます。
%SYSEVALF関数の第1引数内では非欠損値のみを使用します。
Error:%SYSEVALF関数には評価する式がありません。
原因
解法
%SYSEVALF関数の第1引数が省略されています。
%SYSEVALF関数の第1引数内では非欠損値のみを使用します。
Error:マクロ関数%SYSFUNCまたは%QSYSFUNCの引数が多すぎます。 余分な引数を無視します。
原因
解法
構文で必要な数よりも多くのカンマが検出されました。%SYSFUNC関数の引数に、マスクされていないカンマが含まれている可能性があります。
構文で正しい数のカンマが使用されていることを確認します。 %SYSFUNC関数内で指定されている関数の引数にカンマが含まれている場合、%BQUOTE関数を使用してそれらのカンマをマスクする必要があります。
Error:無効な引数が%SYSCALL、%SYSFUNCまたは%QSYSFUNC引数リストに検出されました。%SYSCALLステートメント、または%SYSFUNCや%QSYSFUNC関数参照が終了します。
原因
解法
%SYSFUNC関数内で使用されている関数にとって無効な引数が存在します。
%SYSFUNC関数内で使用されている関数の構文をチェックし、有効な引数が使用されていることを確認します。
Error:出力形式名valueがないか、使用している出力形式に指定された幅と小数点が範囲外です。
原因
解法
このエラーは、%SYSFUNC関数の第2引数に出力形式を指定した場合に発生します。
このエラーは、%SYSFUNC関数内での出力形式に関して、不明な出力形式か無効な幅のどちらか(または両方)を指定した場合に発生します。
%SYSFUNC関数の第2引数に指定されている出力形式が有効であることを確認します。
Error:%LETの後に変数名を指定してください。
原因
解法
%LETステートメントと等号(=)の間にヌル値が存在します。
%LETステートメントの直後には、有効なマクロ変数名を指定する必要があります。
Error:%SYSRPUTの後に変数名を指定してください。
原因
解法
%SYSRPUTステートメントと等号(=)の間にヌル値が存在します。
%SYSRPUTステートメントの直後には、有効なマクロ変数名を指定する必要があります。
Error:等号(=)が%LETステートメントに必要です。
原因
解法
%LETステートメントの構文で等号(=)が省略されています。このエラーは、マクロ定義内でのみ発生します。
%LETステートメントの構文が正しいことを確認します。
%LET variable-name=value;
Error:等号(=)が%SYSRPUTステートメントに必要です。
原因
解法
%SYSRPUTステートメントの直後に、有効なマクロ変数名が指定されていません。
マクロ変数名は次の規則に従う必要があります。
  • SASマクロ変数名は最大32文字の長さになります。
  • 最初の文字は文字または下線で始まらなければなりません。先頭以外には、文字、下線、数字を使用できます。
  • マクロ変数名に空白は使用できません。
  • マクロ変数名にダブルバイト文字セット(DBCS)文字は含められません。
  • マクロ変数名に下線以外の特殊文字は使用できません。
  • マクロ変数名は大文字小文字が区別されません。例えば、catとCatとCATはすべて同じ変数を表します。
  • マクロ変数には、予約語以外の任意の名前を割り当てることができます。AF、DMS、SQL、およびSYSという接頭語の使用は推奨されません。SASソフトウェアが自動マクロ変数を作成する際に、これらの接頭語を頻繁に使用するためです。そのため、これらの接頭語のうちのいずれかを使用すると、自動マクロ変数の名前との競合が発生する恐れがあります。マクロ言語の予約語の完全な一覧については、 マクロ機能の予約語を参照してください。無効なマクロ変数名を割り当てた場合、SASログにエラーメッセージが出力されます。
%SYSRPUTステートメントの後に、存在しないマクロ変数がリストされています。
マクロ変数が置換されない理由を検討します。
Error:%SYSEVALFマクロ関数の引数が多すぎます。余分な引数を無視します。
原因
解法
%SYSEVALF関数には2つの引数があります。 複数のカンマが存在する場合、このエラーが発生します。多くの場合、余計なカンマは、マクロ変数の置換後の値に検出されます。
%SYSEVALF関数の引数をリストする場合、カンマを省略します。%SYSEVALF関数の引数がカンマを含んでいるマクロ変数である場合、COMPRESS関数を使用してそのカンマを削除します。
%sysevalf( %sysfunc(compress(%bquote(&x),
%str(,)))*&y)
Error:関数名が%SYSFUNCまたは%QSYSFUNCマクロ関数参照にありません。
原因
解法
%SYSFUNC構文で関数がリストされていません。
%SYSFUNC関数の第1引数は、有効なSAS関数でなければなりません。
Error:CALLルーチン名が%SYSCALLマクロステートメントにありません。
原因
解法
%SYSCALLステートメントの後のCALLルーチン名が省略されています。
%SYSCALLステートメントの直後には、有効なCALLルーチン名を指定する必要があります。
Error:マクロ変数名valueは文字または下線で始めなければなりません。
原因
解法
%SYMDELステートメント内で無効なマクロ変数名を参照しようとしました。
マクロ変数名は次の命名規則に従う必要があります。
  • SASマクロ変数名は最大32文字の長さになります。
  • 最初の文字は文字または下線で始まらなければなりません。先頭以外には、文字、下線、数字を使用できます。
  • マクロ変数名に空白は使用できません。
  • マクロ変数名にダブルバイト文字セット(DBCS)文字は含められません。
  • マクロ変数名に下線以外の特殊文字は使用できません。
  • マクロ変数名は大文字小文字が区別されません。例えば、catとCatとCATはすべて同じ変数を表します。
  • マクロ変数には、予約語以外の任意の名前を割り当てることができます。AF、DMS、SQL、およびSYSという接頭語の使用は推奨されません。SASソフトウェアが自動マクロ変数を作成する際に、これらの接頭語を頻繁に使用するためです。そのため、これらの接頭語のうちのいずれかを使用すると、自動マクロ変数の名前との競合が発生する恐れがあります。マクロ言語の予約語の完全な一覧については、 マクロ機能の予約語を参照してください。無効なマクロ変数名を割り当てた場合、SASログにエラーメッセージが出力されます。
Error:コンパイルされ格納されているマクロvalueは、ステートメント形式の呼び出しを使って呼び出されました。 このコンパイルされ格納されているマクロは、ステートメント形式のマクロとしてコンパイルされていません。このマクロの実行は終了します。このマクロには、名前形式の呼び出しを使用してください。
原因
解法
マクロがステートメントスタイルのマクロとして定義されていないにもかかわらず、そのマクロをステートメントスタイルのマクロとして呼び出そうとしました。 このエラーは通常、IMPLMACシステムオプションが設定されており、マクロ呼出しの先頭に記述する必要のあるパーセント記号(%)が省略されている場合に発生します。
マクロ呼出しがパーセント記号(%)で始まることを確認します。IMPLMACシステムオプションを指定すると、マクロ機能は、各SASステートメントの先頭ワードに対応する名前を見つけようとして、現在のセッション中にコンパイルされたマクロを検索するため、処理時間が増大します。ステートメントスタイルのマクロを使用しない場合、NOIMPLMACシステムオプションが設定されていることを確認します。
Error:コンパイルされ格納されているマクロvalueは、コマンド形式の呼び出しを使って呼び出されました。このコンパイルされ格納されているマクロは、コマンド形式のマクロとしてコンパイルされていません。このマクロの実行は終了します。このマクロには、名前形式の呼び出しを使用してください。
原因
解法
マクロがコマンドスタイルのマクロとして定義されていないにもかかわらず、そのマクロをコマンドスタイルのマクロとして呼び出そうとしました。 このエラーは通常、コマンドラインでマクロを呼び出そうとした場合に発生します。
そのマクロを、Program EditorまたはEnhanced Editorから呼び出します。
Error:WORKが連結ライブラリ参照名value(コンパイルされたマクロvalue格納先)のレベル1にあります。OPTION SASMSTOREをWORKがレベル1にないライブラリ参照名に変更します。WORKはテンポラリに使用されます。
原因
解法
あるライブラリとWorkライブラリの連結であるライブラリ参照名を、SASMSTORE=システムオプションの値として使おうとしました。Workライブラリが、LIBNAMEステートメントの先頭にリストされています。
SASMSTORE=システムオプションの値を割り当てる場合、Workライブラリを指さないようにします。Workライブラリは一時ライブラリであるため、永続的なマクロカタログの場所としては適切でありません。
Error:%SYSLPUTの後に変数名を指定してください。
原因
解法
%SYSLPUTステートメントの直後に、有効なマクロ変数名が指定されていません。
%SYSLPUTステートメントの直後に続くテキストが、有効なマクロ変数名であることを確認します。 %SYSLPUTステートメントの直後にマクロ変数の参照が続く場合、そのマクロ変数の置換後の値が有効なマクロ変数名であることを確認します。
Error:等号(=)が%SYSLPUTステートメントに必要です。
原因
解法
作成されるマクロ変数とその値の間に記述する必要のある等号(=)が省略されています。このエラーメッセージは、マクロ内でのみ発生します。
作成されるマクロ変数とその値の間に、等号(=)を記述する必要があります。
Error:%SYSCALLマクロステートメントで参照されたvalueコールルーチンが見つかりません。
原因
解法
存在しないCALLルーチンがリストされています。
有効なCALLルーチンをリストする必要があります。すべてのSAS CALLルーチンは、%SYSCALLステートメントを使って呼び出すことができます。ただし、LABEL、VNAME、SYMPUT、EXECUTEルーチンは例外です。
Error:マクロ予約語valueが不適切に使用されています。
原因
解法
マクロ機能の予約語を不正に使おうとしました。
%TO、%BY、%THENステートメントなどのマクロ構文を使用する場合、正しい構文を使用する必要があります。
Error:自動マクロ変数valueを削除しようとしました。
原因
解法
SASシステムにより定義されているマクロ変数を削除しようとしました。
%SYMDELステートメントを使用して削除できるのは、ユーザー定義のグローバルマクロ変数のみです。
Error:%SYSLPUTステートメントの認識されないオプションです。
原因
解法
無効なオプションが%SYSLPUTステートメントにリストされています。
%SYSLPUTステートメントで有効なオプションはREMOTE=のみです。
Error:テキスト式の長さ(value)テキスト式の長さ(value)を超えています。テキスト式はvalue文字に切り捨てられます。
原因
解法
マクロ言語内のテキスト式の長さが65534バイトを超えています。このエラーメッセージは、マクロ関数の引数の長さが65534バイトを超えた場合などに生成されます。
マクロ変数値の長さは、65534バイト以下でなければなりません。
Error:%ABORTステートメントの認識されないオプションです。value
原因
解法
不明なオプションが%ABORTステートメントで使用されています。
%ABORTステートメントでの有効なオプションは、 ABEND、CANCEL、RETURNです。
Error:%ABORTステートメントによって、実行が中止されました。
原因
解法
このエラーは、%ABORTステートメントの実行に成功した場合に生成されます。
このエラー、%ABORTステートメントが実行された場合に生成されます。
Error:/SOURCEマクロステートメントオプションに対して、MSTOREDオプションをセットしてください。
原因
解法
/SOURCEオプションが%MACROステートメント内で使用されていますが、MSTOREDシステムオプションが使用されていません。
コンパイル済みマクロ機能を使用するためには、MSTOREDおよびSASMSTORE=システムオプションを使用する必要があります。
Error:%COPYステートメント上での余分なテキストは無視しました。
原因
解法
%COPYステートメント内でスラッシュの後にテキストを記述することは、有効なオプションではありません。
%COPYステートメントでの有効なオプションは次のとおりです。
LIBRARY= | LIB=
OUTFILE= | OUT=
Error:この%COPYステートメントオプションの構文は、/LIBRARY = librefです。
原因
解法
LIBRARYオプションの後に記述する必要のある等号(=)が省略されています。
LIBRARY=オプションの正しい構文は次のとおりです。
/library=valid-libref
Error:この%COPYステートメントオプションの構文は、/OUTFILE = <fileref> | "filename"です。
原因
解法
OUTFILE=オプションの正しい構文は次のとおりです。
/outfile=fileref|’external file name’
Error:このデフォルトと指定した%COPYステートメントオプションの組み合わせは、サポートされません。
原因
解法
少なくとも1つのオプションが%COPYステートメント内にリストされていますが、SOURCEオプションが省略されています。
%COPYステートメントを使用する場合、SOURCEオプションをリストする必要があります。
Error:マクロvalue は、ライブラリ参照名valueにありません。
原因
解法
%COPYステートメント内にリストされているマクロは、LIBRARY=オプションにリストされているライブラリ参照名内には見つかりません。
%COPYステートメント内にリストされているマクロが、SASMSTORE=システムオプションにより参照されるライブラリ内にあるSasmacr.sas7bcatカタログに格納されていることを確認します。
Error:/SOURCEオプションは、マクロvalueのコンパイル時に指定されていません。
原因
解法
%COPYステートメント内にリストされているマクロは、SOURCEオプションを設定した状態でコンパイルされていません。
%COPYステートメント内には、SOURCEオプション付きでコンパイルされたコンパイル済みマクロだけをリストできます。
Error:%COPYステートメントの実行時にエラーが発生しました。
原因
解法
このエラーメッセージは、%COPYステートメントにより生成された構文エラーに続いて表示されます。
%COPYステートメントの正しい構文は次のとおりです。
%copy macro-name /<option-1 <option-2>
...> source
Error:%COPYステートメントに無効または存在しないマクロ名valueが指定されています。
原因
解法
マクロ名が省略されているか、またはマクロ名が有効なマクロ名ではありません。
%COPYステートメント内にリストされているマクロ名が、SASMSTORE=オプションにより参照されるライブラリ内にあるSasmacr.sas7bcatカタログに存在することを確認します。
Error:/SOURCEオプションは、他のマクロ内に含まれるマクロ定義には使用できません。
原因
解法
別のマクロ定義内にあるネストされたマクロ定義で、STOREオプションに加えてSOURCEオプションがリストされています。
ネストされたマクロ定義は、コンパイル済みマクロとしては定義できません。 ネストされたマクロ定義は、効率を低下させるため推奨されません。
Error:/SOURCEオプションの使用には、/STOREオプションが必要です。
原因
解法
SOURCEオプションが、STOREオプションを伴わずにリストされています。
SOURCEオプションは、STOREオプションと一緒にリストされている場合にのみ有効となります。
Error:/SECUREオプションと/NOSECUREオプションの使用に矛盾があります。
原因
解法
SECUREオプションとNOSECUREオプションが、%MACROステートメント内で同時にリストされています。
%MACROステートメント内では、SECUREオプションまたはNOSECUREオプションのどちらか1つだけを指定します。
Error:/MINDELIMITER=オプションには、1文字を単一引用符で囲んで指定してください。
原因
解法
複数の文字が区切り文字としてリストされています。
区切り文字としてリストできるのは1つの文字だけになります。
MINDELIMITER=オプションの値が、二重引用符で囲んでリストされています。
この文字は一重引用符で囲む必要があります。
Error:/MINDELIMITER=オプションは一度だけ指定してください。
原因
解法
%MACROステートメント内で、MINDELIMITER=オプションが複数回リストされています。
使用できる区切り文字は1つだけです。MINDELIMITER=オプションは1回だけ指定できます。
Error:同じ名前のパラメータを複数定義しようとしています:value.
原因
解法
同じ名前を持つ複数のパラメータをリストしようとしました。
各マクロパラメータは一意の名前を持つ必要があります。
Error:%ABORT CANCELステートメントによって、実行が取り消されました。
原因
解法
このエラーメッセージは、%ABORTステートメントの実行時に生成されます。
このエラーメッセージは、単に%ABORTステートメントが実行されたことを示します。
Error:%ABORT CANCEL FILEステートメントによって、実行が取り消されました。
原因
解法
FILEオプションが指定された状態で%ABORT CANCELステートメントが実行されました。
このエラーメッセージは、単にFILEオプションが指定された状態で%ABORT CANCELステートメントが実行されたことを示します。
Error:自動マクロ変数valueが%LOCALにあります。
原因
解法
SASシステムにより定義されているマクロ変数が、%LOCALステートメント内にリストされています。
%LOCALステートメント内には、ユーザー定義のマクロ変数のみをリストします。
Error:自動マクロ変数valueが%GLOBALにあります。
原因
解法
SASシステムにより定義されているマクロ変数が、%GLOBALステートメント内にリストされています。
%GLOBALステートメント内には、ユーザー定義のマクロ変数のみをリストします。
Error:/MINOPERATORオプションと/NOMINOPERATORオプションの使用に矛盾があります。
原因
解法
MINOPERATORオプションとNOMINOPERATORオプションが、%MACROステートメント内で同時にリストされています。
定義中のマクロ内でマクロ演算子INを使用する予定である場合、%MACROステートメント内ではMINOPERATORオプションのみをリストします。 MINOPERATORシステムオプションが設定されている場合、NOMINOPERATORオプションのみをリストします。定義中のマクロ内ではマクロ演算子INを使用できません。
Error:/SECUREマクロvalueを%PUTステートメント内で実行しようとしました。
原因
解法
SECUREオプション付きで定義されたマクロが、%PUTステートメント内で呼び出されました。
SECUREオプション付きで定義されたマクロは、%PUTステートメント内では実行できません。
Error:マクロvalueは実行中のため、再定義できません。
原因
解法
開始かっこはあるが閉じかっこがないパラメータ付きでマクロを呼び出した場合、マクロプロセッサは閉じかっこを見つけようとします。 同じマクロを呼び出そうとした場合、このエラーが発行されます。
マクロのパラメータリストには、開始かっこと閉じかっこを含める必要があります。
Error:数値の自動マクロ変数SYSCCへの割り当てに指定された値は、範囲外か、または数値に変換できませんでした。
原因
解法
SYSCC自動マクロ変数に、9999999999以上の値を割り当てようとしました。
SYSCC自動マクロ変数の値は、9999999999未満でなければなりません。
Error:変数valueはすでに宣言され、読み取り専用にできません。
原因
解法
READONLYオプション付きの%GLOBALまたは%LOCALステートメントで、既存のマクロ変数をリストしようとしました。
既存のマクロ変数は、読み込み専用として再定義できません。 新しいマクロ変数を作成する必要があります。
Error:変数valueはすでに読み取り専用として宣言され、変更や再宣言できません。
原因
解法
READONLYオプション付きで作成されたマクロ変数を、%GLOBALまたは%LOCALステートメントで再定義しようとしました。
読み取り専用のマクロ変数は再定義できません。
Error:変数valueはすでに読み取り専用として宣言され、削除できません。
原因
解法
読み取り専用として定義されているマクロ変数が、%SYMDELステートメント内にリストされています。
読み取り専用のマクロ変数は、%SYMDELステートメントを使用して削除することはできません。
Error:変数valueはすでに読み取り専用として宣言され、再宣言できません。
原因
解法
READONLYオプション付きで初期化されたマクロ変数を、%GLOBALまたは%LOCALステートメントで再定義しようとしました。
READONLYオプションを使用する場合、%GLOBALまたは%LOCALステートメントではマクロ変数を1度だけ定義できます。
前のページ|次のページ|ページの先頭へ