NOEXEC SAS SQL

【SAS】「NOTE: PROC SQLはNOEXECオプションを設定し、ステートメントの構文をチェックします。」の対処法

投稿日:

今回はSQLプロシージャを実行した際に、NOEXECオプションを使用していないにも関わらず、

勝手にNOEXECオプションが有効になってしまう場合の対処法について解説します。

結論:構文エラーを正す。

まずは通常のSQLプロシージャから。


/* sql_1 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *
  from data1;
quit;
  • 正常にSQLプロシージャが実行される。

/* sql_2 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,
  from data1;
quit;
  • select句がカンマで終わっているため、エラー。
  • NOEXECオプションを使用してないにも関わらず、NOEXECオプションが有効になっている。(SQLプロシージャの構文が不適切だと、自動的にNOEXECオプションが有効になる?)
  • SQLプロシージャの構文が不適切な場合で、なおかつNOEXECオプションが有効になっている際は、エラー内容を表示する。(参考:SAS 9.4 SQLプロシジャユーザーガイド、第2版

/* sql_3 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *
  from data1
  where;
quit;
  • where条件を記載していないため、エラー。
  • NOEXECオプションを使用してないにも関わらず、NOEXECオプションが有効になっている。(SQLプロシージャの構文が不適切だと、自動的にNOEXECオプションが有効になる?)
  • SQLプロシージャの構文が不適切な場合で、なおかつNOEXECオプションが有効になっている際は、エラー内容を表示する。(参考:SAS 9.4 SQLプロシジャユーザーガイド、第2版

「NOEXECのメッセージが出たら、SQLプロシージャの構文ミスを疑う」と覚えておくと良いでしょう。

-NOEXEC, SAS, SQL

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】オブザベーションを跨いだ計算【RETAIN】【SAS Base Programming対策4】

/* retain */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=2222; Id3=2222; output; …

【SAS】COMPRESSオプションでデータセットを圧縮できる(パフォーマンスも向上するかも)

今回はCOMPRESSオプションでデータセットを圧縮する方法について解説していきたいと思います。 まずは、通常のデータセットから。 /* 非圧縮 */ data data1; id1=”1111”; …

no image

【SQL】【Snowflake】データベースの更新【CREATE OR REPLACE DATABASE】

今回は、Snowflake上でデータベースを更新する方法について、解説します。 — create or replace DATABASE- create or replace DATABASE DB …

【SAS】LIKE演算子は部分一致を表現できる。【WHERE】

/* if ‘%aaaa%’ */ data data1; Id1=1111; Id2=”1aaaa”; Id3=1111; output; Id1=2222; Id2=”bbbb”; Id3=222 …

no image

【SQL】【Snowflake】テーブルの新規作成【CREATE TABLE】

今回は、SQLでテーブルを新規作成する方法について解説します。 — create1- create table DB1.PUBLIC.DATA1 ( “id1” VARCHAR(10), “id2” …