SAS格式数据来自;“平坦”;数据源

SAS格式数据来自;“平坦”;数据源,sas,Sas,希望你能帮忙 我正在尝试使用SAS中的程序从大型机读取平面数据,代码如下: INFILE DG121 TRUNCOVER Missover FIRSTOBS=2 ; INPUT @ 1 LAENGDE IB2. @ 3 TOTANM IB2. @ 5 REXHTYP IB2. @ 7 RMODTAFD PD3. @ 10 RANVDATO PD5. @ 15 RKUNDENR PD6. @ 21 RBRKODE PD2. @ 23 RRAADGIV ÅCHAR1. @ 24 RKUNDKA

希望你能帮忙

我正在尝试使用SAS中的程序从大型机读取平面数据,代码如下:

INFILE DG121 TRUNCOVER
Missover FIRSTOBS=2 ;


INPUT
@ 1 LAENGDE IB2.
@ 3 TOTANM IB2.
@ 5 REXHTYP IB2.
@ 7 RMODTAFD PD3.
@ 10 RANVDATO PD5.
@ 15 RKUNDENR PD6. 
@ 21 RBRKODE PD2.
@ 23 RRAADGIV ÅCHAR1.
@ 24 RKUNDKAT ÅCHAR3.
@ 27 RMAXOPR PD8.2
@ 35 RLOBTIDO PD2.
@ 37 RPRODBET ÅCHAR6.
@ 43 RMEDIE ÅCHAR5.
@ 48 ROPSIG ZD3.
@ 69 BRUGER IB4.

I get the Note in my log:
NOTE: Invalid data for RMODTAFD in line 47291 7-9.
NOTE: Invalid data for RANVDATO in line 47291 10-14.
NOTE: Invalid data for RKUNDENR in line 47291 15-20.
NOTE: Invalid data for RBRKODE in line 47291 21-22.
NOTE: Invalid data for RMAXOPR in line 47291 27-34.
NOTE: Invalid data for RLOBTIDO in line 47291 35-36.
NOTE: Invalid data for ROPSIG in line 47291 48-50.
ERROR: Limit set by ERRORS= option reached.  Further errors of this type will not be printed.
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0                      

47291     .ü.......................................................^.......................5\.................
    ZONE  0A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0500FFFFFFFFFFFFFFFFFFFF0FEFFFFFFFFFFFFFFFFF
    NUMR  0100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0AFFFFFFFFFFFFFFFFFFFF550FFFFFFFFFFFFFFFFF

     101  .......................rrrr{.r{.rr{...........¸...èhÇ..{..}.{ 161
    ZONE  FFFFFFFFFFFFFFFFFFFFFF0999990990999FFF00001120900058632900429
    NUMR  FFFFFFFFFFFFFFFFFFFFFF99999C99C999CFFF00691462D00548862C0078C
LAENGDE=161 TOTANM=0 REXHTYP=-1 RMODTAFD=. RANVDATO=. RKUNDENR=. RBRKODE=. RRAADGIV=¤ RKUNDKAT=¤¤¤ RMAXOPR=. RLOBTIDO=.
RPRODBET=¤¤¤¤¤¤ RMEDIE=¤¤¤¤¤ ROPSIG=. BRUGER=-1 _ERROR_=1 _N_=47290
NOTE: EOV macro was not able to obtain an additional extent for library data set SYS15133.T093707.RA000.G46973.R0566335, volume 
      number 1. System rc = 00000B37; Reason code = 00000004.
ERROR: Write to WORK.WAB.DATA failed. File is full and may be damaged.
我的问题是。 我知道我的PD格式无法读取字符。但是我是否可以通过某种方式让sas跳过它无法读取的数据,这样我就不会收到注释:
注意:行47291 48-50中ROPSIG的无效数据

您可以使用输入格式修改器来消除错误并使sas继续处理。检查SAS文档中输入语句->的格式修饰符

因此,您的代码应该如下所示:

INPUT
@ 1 LAENGDE ?? IB2.
@ 3 TOTANM  ?? IB2.
@ 5 REXHTYP ?? IB2.
@ 7 RMODTAFD ?? PD3.
.
.
.

另外,我想指出的是,根据您的日志,显示的错误是因为空间不足(B37是大型机上的空间不足错误)。尝试增加创建数据集的库的分配大小,以防止出现此错误。

谢谢。这正是我要找的!关于空间外错误。我可以在SAS中增加工作空间吗?还是需要在大型机上增加工作空间?SAS将使用大型机位置作为工作路径。查看扩展日志上的DDNAME工作,您将能够看到大型机数据集。无论您是否需要增加SPACE=参数值以避免B37错误,它都将是永久数据集或临时数据集。我可以看到我的大型机数据集是:注意:infle DG121是:Dsname=G41066.PUREX.HK000.WAB.HTB.DG121,Unit=3390,Volume=A0243C,Disp=SHR,Blksize=27998,Lrecl=23472,Recfm=VB但是我可以在我的程序中写下,SPACE=X我想要的数据集中的数字吗?不,我想你对术语“数据集”感到困惑了。在sar/ispf中查看您的大型机作业,并查看第三个bucket日志(其中包含扩展的JCL作业)。在此范围内,尝试查找SAS步骤和该工作名称。这将向您显示构成工作库的大型机位置。通过覆盖路径增加该库的分配。请向您的站点的大型机专家咨询,以帮助您了解分配情况等。好的,这非常有帮助。感谢您快速而有用的回答!
INPUT
@ 1 LAENGDE ?? IB2.
@ 3 TOTANM  ?? IB2.
@ 5 REXHTYP ?? IB2.
@ 7 RMODTAFD ?? PD3.
.
.
.