sas
PROC SQLパススルー内のマクロ変数を引用符で解決する
サーチ…
前書き
最初にSASを使い始めたときに直面した課題の1つは、マクロ変数データをPROC SQLパススルーに渡すだけでなく、その周りに引用符が必要な場合に適切に解決することでした。 valueやdate / datetimeのような文字列をPROC SQLのパススルーに渡すときは、解決の際に一重引用符で囲む必要があります。
これを達成するために%BQUOTE関数を使用すると、最良の結果が得られました。
備考
日付であるマクロ変数によるパススルー
まず、マクロ変数に日付を入れます。
注:私はdate9を見つける。 IBM®Netezza®SQLとTransact-SQLで効果的です。実行しているSQLの種類に適した形式を使用します。
data _null_;
call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;
私の%PUTステートメントが解決する:10MAR2017
次に、PROC SQLパススルーを実行し、そのマクロ変数を内部で解決して日付を指定したいとします。
PROC SQL;
CONNECT TO odbc AS alias (dsn=myServer user=userName password= pass);
CREATE TABLE TableName AS
SELECT *
FROM connection to alias
(
SELECT *
FROM
Database.schema.MyTable
WHERE
DateColumn = %bquote('&testDate')
);
QUIT;
%bquote( '&testDate')は、コード実行時に '10MAR2017'に解決されます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow