2016年7月4日月曜日

FedSQLプロシジャで変数名が予約語と被る場合の解決策


ネタ提供いただきました、ありがとうございます!

今回はFedSQLプロシジャに関する内容なので、何それって方は以下data memorandumさんの記事をご覧ください。

「FedSQL プロシジャは、SQLプロシジャとどう違うの? - SAS」
http://data-memorandum.blogspot.jp/2016/06/proc-fedsql-vs-proc-sql-sas.html



【質問】 以下FedSQLプロシジャを実行するとERRORが出ます。SQLプロシジャで動いてたのに何故?
data DT1;
  OF=1;
run;

proc fedsql;
   select OF
   from DT1;
quit;

ログ
ERROR: 構文エラー at or near "OF"


【回答】 FedSQLには予約語が存在します。
変数名をOFにしていますが、このOFが予約語だったのでERRORが出てしまったわけです。

解決策は以下のようにダブルクォーテーションで囲ってあげるだけです。

proc fedsql;
   select "OF"
   from DT1;
quit;

「sas fedsql reserved words」 とかで検索すると予約語一覧が載ってる海外SAS社の頁がヒットするので確認してみてください。

0 件のコメント:

コメントを投稿