Я хочу использовать процедуру SQL, чтобы вытащить данные из SQL в SAS EG.Специальный символ в хранимой процедуре
Но значение в одном параметре (INVNO) представляет собой TN/2015-16/0005-13, т.е. специальный символ.
Это вызывает ошибку:
ERROR: CLI prepare error: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '/'. SQL statement: execute 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 подсказки
Если вы можете показать какой синтаксис работает для вашего оператора SQL и какое значение имеет ваша переменная SAS, возможно, кто-то может помочь вам преобразовать значение макропеременной в синтаксис, который вам нужен. – Tom
У вас есть несколько вопросов в вашем сообщении, вы, скорее всего, получите помощь, если сосредоточьтесь на одном за раз. Кроме того, как отметил @Tom, в коде есть много вещей, которые мы не видим, например, макропеременные. Попробуйте сделать пример, который будет воспроизводиться для кого-то с той же настройкой. –