ACCESS to Oracleのパススルー機能にてWHERE句にマクロ変数を利用する
[OS] ALL
[リリース] ALL
[キーワード] ACCESS, ORACLE, SQL Pass-Thru, WHERE clause, macro variable
[質問]
SQLプロシジャのパススルー機能にてOracleのWHERE句にマクロ変数を利用したいと思っています。
[回答]
特殊文字をクォートする%STRマクロ関数と%を利用して、単引用符をマークすることで対応可能です。 下記の例では、SQLパススルーのWHERE句に記述する条件式にて、変数名enameの値をマクロ変数&MACVとして定義できるように%STRマクロ関数と%でマクロ変数を定義しています。 例:パススルーSQLでのマクロ変数の使用
%LET macv=ALLEN;
PROC SQL;
CONNECT TO ORACLE(USER=xxx PASSWORD=xxx PATH="@xxx");
SELECT * FROM CONNECTION TO ORACLE
(
SELECT COUNT(*) FROM emp WHERE ename=%STR(%'&MACV%')
);
DISCONNECT FROM oracle;
QUIT;
|
|