Возможно ли, что создание таблицы с SAS proc sql приведет к усечению символьной переменной до 255 символов? Связано ли это с типом библиотечного движка?
Я использую такое имя библиотеки PCFILES (обратите внимание на параметр dbmax_text):
libname mylib PCFILES PATH = "C:\path\to\my\32bit\MS Acccess.ACCDB" dbmax_text=4000;
Затем я делаю proc sql следующим образом:
proc sql noprint;
create table work.cbdata as
select
distinct var1,
var2,
...
from mylib.var2015
where
upcase(var1) = "DIQ"
order by var1
;
quit;
var2
обрезается до 255, хотя его формат указан как $4000.
в представлении свойств столбца. Когда я делаю это как шаг данных, проходят все символьные данные:
data vardb;
set mylib.var2015;
if var1 = "DIQ";
run;
У меня есть 40-50 процедур sql, подобных этой, встроенных в мою библиотеку макросов, поэтому я бы предпочел не реорганизовывать все макросы для использования шагов данных (если это вообще возможно). Кто-нибудь знает
а) если в proc sql есть опция, чтобы он уважал dbmax_text.
or
б) любая документация о том, как SAS обрабатывает длину символов в операторах создания таблицы proc sql?
РЕДАКТИРОВАТЬ - добавление скриншотов.
SAS считает, что переменные имеют длину 4000 символов:
var2 length=4000,
вместо простоvar2,
в предложении select и посмотреть, поможет ли это? - person Dominic Comtois   schedule 29.03.2016var2 format = $3999. length = 3998,
, свойства столбца можно изменить, но данные по-прежнему обрезаются до 255 символов. - person Matt Moehr   schedule 29.03.2016order by
и / илиdistinct
? - person Dominic Comtois   schedule 30.03.2016