1
を見つけていない私は月の終了日が含まれていますが、それは次のようなエラーERROR:属性「2017年2月28日」
ERROR: Prepare error: ICommandPrepare::Prepare failed. : ERROR: Attribute '2017-02-28' not found
になり、自動変数を持っているのproc SQLを使用してSASで実行する次のクエリを持っています
問合せ:
proc sql;
connect to oledb (datasource='10.1.0.105' provider=nzoledb
user=&user_id password=&pwd properties=('initial catalog'=ODS));
create table &user..Pers_test as select * from connection to oledb
(SELECT a.ID from DBO.Table1
where a.SOURCE_SYSTEM_CREATED_DTM <= "&monthend."
Group by a.SWID order by a.SWID
);
%let _sql_xrc=&sqlxrc;
disconnect from oledb;
quit;
タイムスタンプがハードコードされたときにクエリが実行されますが。
proc sql;
connect to oledb (datasource='10.1.0.105' provider=nzoledb
user=&user_id password=&pwd properties=('initial catalog'=ODS));
create table &user..Pers_test as select * from connection to oledb
(SELECT a.ID from DBO.Table1
where a.SOURCE_SYSTEM_CREATED_DTM <= '2017-02-28 00:00:00'
Group by a.SWID order by a.SWID
);
%let _sql_xrc=&sqlxrc;
disconnect from oledb;
quit;
キャスト、サブストリングを試しましたが、すべて同じエラーが発生します。自動化された変数については、何か助けてください。
を次のように
単一引用符の下に変数を解決するためのコードではなく、単一引用符のタイムスタンプの周りに二重引用符を使用し、あなたが同じエラーが出るんでしょうか? – Quentin
@Quentin:ハードコーディングされたクエリでは、一重引用符です。自動問合せでは、一重引用符は変数を変換しないため、二重引用符を使用する必要があります。 。 –
私は二重引用符が問題であるかもしれないと思います。問題があるかどうかをテストするには、二重引用符でハードコードされたクエリを実行してみてください。同じエラーが発生した場合は、二重引用符がエラーの原因であることがわかります。もしそうならば、SOや他の場所では、小さな引用符の中で解決されないマクロ変数の問題を解決するさまざまな方法の例がたくさんあります。 – Quentin