我想使用SQL过程将数据从SQL提取到SAS EG。
但是一个参数(INVNO)中的值是TN / 2015-16 / 0005-13,即特殊字符。
这导致错误:
错误:CLI准备错误:[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]第1行:'/'附近的语法不正确。 SQL语句:执行SAS_INV_RPT AMRUTFAC,SDAB,1,TN05 / 000023 / 14-15,TN05 / 000024 / 14-15。
有人可以为此提出解决方法吗?
PROC SQL;
CONNECT TO ODBC (DSN='AHCLOD' uid=&uid pwd=&pwd);
CREATE TABLE sas_inv_rpt AS
SELECT * FROM connection to ODBC (
execute SAS_INV_RPT
&COMPANY_CODE,
&LOCATION_CODE,
&LANG_ID,
&INVNO_min,
&INVNO_max);
DISCONNECT FROM ODBC;
QUIT;
我也可以使用带有INVNO_min和INVNO_max提示的文本值范围
答案 0 :(得分:0)
回答第一个问题:
看看:SAS %QUOTE and %NRQUOTE MACRO Functions
PROC SQL;
CONNECT TO ODBC (DSN='AHCLOD' uid=&uid pwd=&pwd);
CREATE TABLE sas_inv_rpt AS
SELECT * FROM connection to ODBC
(execute
SAS_INV_RPT
&COMPANY_CODE,
&LOCATION_CODE,
&LANG_ID,
%QUOTE(&INVNO_min), /* Mask any special chars in the resolved text*/
%QUOTE(&INVNO_max) );
DISCONNECT FROM ODBC;
QUIT;
RUN;