2014-04-09 24 views
9

Bir SAS veri kümesini 49 değişkenle dışa aktarmaya çalışıyorum. Bu değişkenlerin her biri potansiyel olarak 32767 karakter uzunluğunda olabilir. Bu veri setini bir txt dosyasına yazmak istiyorum, ancak SAS beni 32767 karakterde lrecl seçeneği ile sınırlandırıyor. Bunu yapmanın bir yolu var mı? Veri adımını kullanmayı denedim.Satır kaydı uzunluğu 32767 karakterden büyük olan bir txt dosyası dışa aktarılıyor mu?

data _null_; 
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */ 
%let _EFIREC_ = 0;  /* clear export record count macro variable */ 
file 'C:path\TEST.txt'; 
if _n_ = 1 then do; 
    put "<BLAH>" 
    ; 
end; 
set WORK.SAS_DATASET end=EFIEOD; 
    format raw1 $32767. ; 
    format raw2 $32767. ; 

    etc... 
do; 
    EFIOUT + 1; 
    put raw1 $ @; 
    put raw2 $ @; 

    etc... 
    ; 
end; 
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ 
if EFIEOD then 
do; 
    put "</BLAH>" 
    ; 
    call symputx('_EFIREC_',EFIOUT); 
end; 
run; 

cevap

5

Elbette. Sadece LRECL'i kendiniz belirtmelisiniz.

filename test temp; 
data _null_; 
set sashelp.class; 
file test lrecl=999999; 
put 
@1 name $32767. 
@32768 sex $32767. 
@65535 age 8. 
;;;; 
run; 

Bazı OS'ler mantıksal kayıt uzunluğunuzu sınırlayabilir, ancak Windows'da en az 1e6 olduğundan, iyi olmanız gerekir.

+0

Harika ... "Seçenekler lrecl = 10000000;" ifadesini kullanarak veri adımımdan önce tanımlama hatası yaptım ve bu bana bir hata verdi. –

+1

Bazı nedenlerden dolayı, OPTIONS LRECL, daha yüksek LRECL'lere kesinlikle FIL 'ifadesinde yasal olarak rağmen 32767'ye kadar izin veriyor. – Joe

+0

Tamam ... kodu çalıştırdı, ancak her değişkenin yalnızca ilk 8000 karakterini yazıyor. Neden? Değiştirmem gereken başka bir seçenek var mı? –

İlgili konular