无法创建大于40的xpt文件(Sas8)标签

无法创建大于40的xpt文件(Sas8)标签,sas,Sas,TS-140记录布局不工作。 下面是大于40的变量的标题部分。 标题记录*******LABELV8标题记录!!!!!!!nnnn 其中nnnnn是将使用长标签的变量数 我们可以获得任何样本xpt(sas8)文件(至少有一个标签大于40)。在SAS Universal Viewer的文件打开菜单中,它明确显示V5传输文件。V5格式仅支持SAS版本5中存在的限制。因此,8个字符的名称,40个字符的标签,字符变量的最大长度为200 但它看起来确实支持较长的值。至少在使用1.42版时 要制作示例

TS-140记录布局不工作。 下面是大于40的变量的标题部分。 标题记录*******LABELV8标题记录!!!!!!!nnnn 其中nnnnn是将使用长标签的变量数


我们可以获得任何样本xpt(sas8)文件(至少有一个标签大于40)。

在SAS Universal Viewer的文件打开菜单中,它明确显示V5传输文件。V5格式仅支持SAS版本5中存在的限制。因此,8个字符的名称,40个字符的标签,字符变量的最大长度为200

但它看起来确实支持较长的值。至少在使用1.42版时

要制作示例的代码:

data v8;
  attrib var1 label=
'This label is so long that it will have more than 40 characters';
  input (var1 var2 ThisNameIsMoreThan8Chars) (:$1.);
cards;
1 2 3
4 5 6
;

%loc2xpt(libref=work,memlist=V8,filespec=xpt,format=auto);
结果文件:

305   data _null_;
306    infile xpt lrecl=80 recfm=f;
307    input;
308    list;
309   run;

NOTE: The infile XPT is:
      Filename=...,
      File Size (bytes)=1440

RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
1         HEADER RECORD*******LIBV8   HEADER RECORD!!!!!!!000000000000000000000000000000

2   CHAR  SAS     SAS     SASLIB  9.1     LIN X64.                        07JUN21:11:11:51
    ZONE  54522222545222225454442232322222444253302222222222222222222222223345433333333333
    NUMR  3130000031300000313C92009E100000C9E0864000000000000000000000000007A5E21A11A11A51
3         07JUN21:11:11:51
4         HEADER RECORD*******MEMBV8  HEADER RECORD!!!!!!!000000000000000001600000000140
5         HEADER RECORD*******DSCPTV8 HEADER RECORD!!!!!!!000000000000000000000000000000

6   CHAR  SAS     V8                              SASDATA 9.1     LIN X64.07JUN21:11:11:51
    ZONE  54522222532222222222222222222222222222225454454232322222444253303345433333333333
    NUMR  3130000068000000000000000000000000000000313414109E100000C9E0864007A5E21A11A11A51
7         07JUN21:11:11:51
8         HEADER RECORD*******NAMSTV8 HEADER RECORD!!!!!!!000000000300000000000000000000

9   CHAR  ........var1    This label is so long that it will have         ........
    ZONE  00000000767322225667266666267276266662766726727666266762222222220000000022222222
    NUMR  020001016121000048930C125C09303F0CFE704814094079CC081650000000000000000000000000

10  CHAR  ........var1                            .?..........................var2
    ZONE  00000000767322222222222222222222222222220300000000000000000000000000767322222222
    NUMR  00000000612100000000000000000000000000000F01010000000000000002000102612200000000

11  CHAR                                              ........        ........var2
    ZONE  22222222222222222222222222222222222222222222000000002222222200000000767322222222
    NUMR  00000000000000000000000000000000000000000000000000000000000000000001612200000000

12  CHAR                      ............................ThisName
    ZONE  22222222222222222222000000000000000000000000000056674666222222222222222222222222
    NUMR  0000000000000000000001010100000000000000020001034893E1D5000000000000000000000000

13  CHAR                          ........        ........ThisNameIsMoreThan8Chars
    ZONE  22222222222222222222222200000000222222220000000056674666474676566634667722222222
    NUMR  0000000000000000000000000000000000000000000000024893E1D593DF25481E83812300000000

14  CHAR  ....................
    ZONE  00000000000000000000222222222222222222222222222222222222222222222222222222222222
    NUMR  01010100000000000000000000000000000000000000000000000000000000000000000000000000
15        HEADER RECORD*******LABELV8 HEADER RECORD!!!!!!!1

16  CHAR  .....?var1This label is so long that it will have more than 40 characters
    ZONE  00000376735667266666267276266662766726727666266762667627666233266676676772222222
    NUMR  01040F612148930C125C09303F0CFE704814094079CC081650DF250481E040038121345230000000
17        HEADER RECORD*******OBSV8   HEADER RECORD!!!!!!!              2
18        123456
NOTE: 18 records were read from the infile XPT.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds

你的编程问题是什么?您正在运行的代码是什么?您有什么问题?我正在使用c#创建xpt文件。这没有问题。有最新的更新,在(Sas8)文件中包含超过40个字符的标签。问题是关于Sas8文件,它应该能够在Sas查看器中打开。什么查看器?如果要使用使用%loc2xpt和%xpt2loc宏支持的高级功能的XPORT文件,则需要使用SAS本身将其转换为数据集。我们使用的是SAS Universal Viewer。我们能在Sas universal viewer中看到长度大于40的Sas标签吗?谢谢。您能否发送上述样本文件。我正在寻找一个工作示例。您可以从我添加的日志中的HEXCODE重新创建它。我对Sas完全是空白,我只使用Sas universal viewer打开文件,我将通过在记事本++中编辑来检查规则。所以我真的不知道如何从上面的hexa代码创建xpt文件。但我了解文件结构。如果你有编码技能,可以编写一个C程序来生成XPT文件,那么你应该能够将上面SAS日志中的文本行转换为1440字节的二进制文件。18块,每个80字节。谢谢。我们可以在Sas标签(xpt文件)中使用中文字符吗。对于2个或更多字节字符,我们是否有任何限制。