Я использую SAS 9.2, пытаясь прочитать данные из служебного отчета IDCAMS, в котором содержится информация о наборах данных мэйнфрейма z / OS. Даты имеют формат yyyy.jjj, где yyyy - это четырехзначный год, а jjj - юлианский день года. Проблема с периодом, поскольку стандартным SAS INFORMATS он не нравится. Как бы я прочитал такую дату?
Образец кода:
DATA ALL smflist (KEEP=DSNAME volser) ;
LENGTH dsname $ 44. volser $ 6. createdt 8.;
INFILE SYSPRINT LENGTH=LEN;
input @ "NONVSAM ------- " dsname;
input @ "CREATION--------" createdt JULIAN8.;
input @ "VOLSER------------" volser;
Пример вывода, включая INFILE SYSPRINT: (в столбце 54 указана дата создания)
NOTE: Invalid data for createdt in line 282 54-61.
NONVSAM ------- SYSP.LPAR.SMFOTHR.ROLLING.G3563V00
IN-CAT --- USR.UCAT.ALIASP
HISTORY
DATASET-OWNER-----(NULL) CREATION--------2014.174
RELEASE----------------2 EXPIRATION------0000.000
ACCOUNT-INFO-----------------------------------(NULL)
STATUS------------ACTIVE
SMSDATA
STORAGECLASS ------SCPNV MANAGEMENTCLASS-MCPNVGD2
DATACLASS ---------DCSMF LBACKUP ---XXXX.XXX.XXXX
VOLUMES
VOLSER------------MIGRAT DEVTYPE------X'78048081' FSEQN----------
ASSOCIATIONS
GDG------SYSP.LPAR.SMFOTHR.ROLLING
ATTRIBUTES
_INFILE_
автоматическую переменную после того, как прочитаете первую строку, и, возможно, измените ее таким образом. - person Joe   schedule 05.08.2014