Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
Occasional Contributor
Beiträge: 7
Keep Option im PROC Export

Hallo zusammen,

 

ich habe festgestellt, dass die Verwendung der KEEP Option im PROC Export seit SAS 9.4 Probleme macht. Es scheint, als würden aus der KEEP-Variablenliste nur die ersten ca. 420 Zeichen gelesen und danach hart abgeschnitten. Das führt logischerweise zu Fehlern.

 

Erstaunlicherweise lief das gleiche Statement unter SAS 9.3 noch problemlos.

 

Ist das so gewollt bzw. irgendwo beschrieben? Oder haben vielleicht sogar nur wir das Problem?
Betrifft das evtl. auch andere Optionen? (bislang nicht getestet)

 

Viele Grüße

Ilja Mett

Contributor
Beiträge: 24
Betreff: Keep Option im PROC Export

Hallo Ilja,

 

...

ich habe festgestellt, dass die Verwendung der KEEP Option im PROC Export seit SAS 9.4 Probleme macht. Es scheint, als würden aus der KEEP-Variablenliste nur die ersten ca. 420 Zeichen gelesen und danach hart abgeschnitten. Das führt logischerweise zu Fehlern.

 ...

 

Das kann ich bestätigen. Bei mir wird auch der Code nach 417 Zeichen abgeschnitten.

Mit 59 Variablen läuft es noch durch.

NOTE: SYSVLONG=9.04.01M3P062415

...

MPRINT(TEST):   Proc export data = test (keep = a00001 a00002 a00003 a00004 a00005 a00006 a00007
a00008 a00009 a00010 a00011 a00012 a00013 a00014 a00015 a00016 a00017 a00018 a00019 a00020 a00021
a00022 a00023 a00024 a00025 a00026 a00027 a00028 a00029 a00030 a00031 a00032 a00033 a00034 a00035
a00036 a00037 a00038 a00039 a00040 a00041 a00042 a00043 a00044 a00045 a00046 a00047 a00048 a00049
a00050 a00051 a00052 a00053 a00054 a00055 a00056 a00057 a00058 a00059 ) outfile =
"C:\temp\test.csv" dbms=dlm replace ;
MPRINT(TEST):   ADLM;
MPRINT(TEST):   delimiter=";";
MPRINT(TEST):   run;

....

NOTE: 2 records were written to the file 'C:\temp\test.csv'.
      The minimum record length was 58.
      The maximum record length was 412.
NOTE: There were 1 observations read from the data set WORK.TEST.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

mit 60 Variablen hängt es.

 

....

MPRINT(TEST):   Proc export data = test (keep = a00001 a00002 a00003 a00004 a00005 a00006 a00007
a00008 a00009 a00010 a00011 a00012 a00013 a00014 a00015 a00016 a00017 a00018 a00019 a00020 a00021
a00022 a00023 a00024 a00025 a00026 a00027 a00028 a00029 a00030 a00031 a00032 a00033 a00034 a00035
a00036 a00037 a00038 a00039 a00040 a00041 a00042 a00043 a00044 a00045 a00046 a00047 a00048 a00049
a00050 a00051 a00052 a00053 a00054 a00055 a00056 a00057 a00058 a00059 a00060 ) outfile =
"C:\temp\test.csv" dbms=dlm replace ;
MPRINT(TEST):   ADLM;
MPRINT(TEST):   delimiter=";";
MPRINT(TEST):   run;

ERROR: The variable a0006 in the DROP, KEEP, or RENAME list has never been referenced.
Arguments passed to SEND:
  1 dseid = 11015
  2 (Character Literal) = '_GET_DATASET_ATTRIBUTES_'
Parameters passed to SEND ENTRY:
  1 attrlist = 11205
Program returning prematurely at line 608
AF Program: SASHELP.EFI.EFIBATCH.SCL
ERROR: Export unsuccessful.  See SAS Log for details.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.04 seconds

 

...

Erstaunlicherweise lief das gleiche Statement unter SAS 9.3 noch problemlos.

...

 

Das kann ich nicht bestätigen. Folgender Code wurde abgeschickt:

NOTE: SYSVLONG=9.03.01M2P081512
MPRINT(TEST):   Proc export data = test (keep = a00001 a00002 a00003 a00004 a00005 a00006 a00007
a00008 a00009 a00010 a00011 a00012 a00013 a00014 a00015 a00016 a00017 a00018 a00019 a00020 a00021
a00022 a00023 a00024 a00025 a00026 a00027 a00028 a00029 a00030 a00031 a00032 a00033 a00034 a00035
a00036 a00037 a00038 a00039 a00040 a00041 a00042 a00043 a00044 a00045 a00046 a00047 a00048 a00049
a00050 a00051 a00052 a00053 a00054 a00055 a00056 a00057 a00058 a00059 a00060 ) outfile =
"C:\temp\test.csv" dbms=dlm replace ;
MPRINT(TEST):   ADLM;
MPRINT(TEST):   delimiter=";";
MPRINT(TEST):   run;

von den 99 Variablen des Dateset werden 60 ausgewählt

 

Der Export Befehl wird zu einem Datastep aufgelöst. Es werden konsequent alle Variablen des Datasets angesprochen. Hier der Befehl zum Schreiben der ersten Zeile.

MPRINT(TEST):   put "a00001" ';' "a00002" ';' "a00003" ';' "a00004" ';' "a00005" ';' "a00006" ';'
"a00007" ';' "a00008" ';' "a00009" ';' "a00010" ';' "a00011" ';' "a00012" ';' "a00013" ';' "a00014"
';' "a00015" ';' "a00016" ';' "a00017" ';' "a00018" ';' "a00019" ';' "a00020" ';' "a00021" ';'
"a00022" ';' "a00023" ';' "a00024" ';' "a00025" ';' "a00026" ';' "a00027" ';' "a00028" ';' "a00029"
';' "a00030" ';' "a00031" ';' "a00032" ';' "a00033" ';' "a00034" ';' "a00035" ';' "a00036" ';'
"a00037" ';' "a00038" ';' "a00039" ';' "a00040" ';' "a00041" ';' "a00042" ';' "a00043" ';' "a00044"
';' "a00045" ';' "a00046" ';' "a00047" ';' "a00048" ';' "a00049" ';' "a00050" ';' "a00051" ';'
"a00052" ';' "a00053" ';' "a00054" ';' "a00055" ';' "a00056" ';' "a00057" ';' "a00058" ';' "a00059"
';' "a00060" ';' "a00061" ';' "a00062" ';' "a00063" ';' "a00064" ';' "a00065" ';' "a00066" ';'
"a00067" ';' "a00068" ';' "a00069" ';' "a00070" ';' "a00071" ';' "a00072" ';' "a00073" ';' "a00074"
';' "a00075" ';' "a00076" ';' "a00077" ';' "a00078" ';' "a00079" ';' "a00080" ';' "a00081" ';'
"a00082" ';' "a00083" ';' "a00084" ';' "a00085" ';' "a00086" ';' "a00087" ';' "a00088" ';' "a00089"
';' "a00090" ';' "a00091" ';' "a00092" ';' "a00093" ';' "a00094" ';' "a00095" ';' "a00096" ';'
"a00097" ';' "a00098" ';' "a00099" ;
663       end;

An einer Stelle wirk die keep Option.

MPRINT(TEST):   set TEST(keep = a00001 a00002 a00003 a00004 a00005 a00006 a00007 a00008 a00009 a00010
a00011 a00012 a00013 a00014 a00015 a00016 a00017 a00018 a00019 a00020 a00021 a00022 a00023 a00024
a00025 a00026 a00027 a00028 a00029 a00030 a00031 a00032 a00033 a00034 a00035 a00036 a00037 a00038
a00039 a00040 a00041 a00042 a00043 a00044 a00045 a00046 a00047 a00048 a00049 a00050 a00051 a00052
a00053 a00054 a00055 a00056 a00057 a00058 a00059 a00060 ) end=EFIEOD;

Folglich kommt es zu folgenden Ergebnis:

NOTE: Variable a00061 is uninitialized.
NOTE: Variable a00062 is uninitialized.
NOTE: Variable a00063 is uninitialized.
NOTE: Variable a00064 is uninitialized.
NOTE: Variable a00065 is uninitialized.
NOTE: Variable a00066 is uninitialized.
NOTE: Variable a00067 is uninitialized.
NOTE: Variable a00068 is uninitialized.
NOTE: Variable a00069 is uninitialized.
NOTE: Variable a00070 is uninitialized.
NOTE: Variable a00071 is uninitialized.
NOTE: Variable a00072 is uninitialized.
NOTE: Variable a00073 is uninitialized.
NOTE: Variable a00074 is uninitialized.
NOTE: Variable a00075 is uninitialized.
NOTE: Variable a00076 is uninitialized.
NOTE: Variable a00077 is uninitialized.
NOTE: Variable a00078 is uninitialized.
NOTE: Variable a00079 is uninitialized.
NOTE: Variable a00080 is uninitialized.
NOTE: Variable a00081 is uninitialized.
NOTE: Variable a00082 is uninitialized.
NOTE: Variable a00083 is uninitialized.
NOTE: Variable a00084 is uninitialized.
NOTE: Variable a00085 is uninitialized.
NOTE: Variable a00086 is uninitialized.
NOTE: Variable a00087 is uninitialized.
NOTE: Variable a00088 is uninitialized.
NOTE: Variable a00089 is uninitialized.
NOTE: Variable a00090 is uninitialized.
NOTE: Variable a00091 is uninitialized.
NOTE: Variable a00092 is uninitialized.
NOTE: Variable a00093 is uninitialized.
NOTE: Variable a00094 is uninitialized.
NOTE: Variable a00095 is uninitialized.
NOTE: Variable a00096 is uninitialized.
NOTE: Variable a00097 is uninitialized.
NOTE: Variable a00098 is uninitialized.
NOTE: Variable a00099 is uninitialized.
NOTE: The file 'C:\temp\test.csv' is:
      Filename=C:\temp\test.csv,
      RECFM=V,LRECL=32767,File Size (bytes)=0,
      Last Modified=26. Februar 2017 11.57 Uhr,
      Create Time=26. Februar 2017 11.57 Uhr

NOTE: 2 records were written to the file 'C:\temp\test.csv'.
      The minimum record length was 98.
      The maximum record length was 692.
NOTE: There were 1 observations read from the data set WORK.TEST.
NOTE: DATA statement used (Total process time):
      real time           0.21 seconds
      cpu time            0.21 seconds

Ich würde jetzt nicht sagen, dass der produzierte Code das erwartete Ergebnis ist. Bei mir läuft die

NOTE: Variable <xy> is uninitialized

,anders als bei SAS,   unter Fehlermeldung.

 

Viele Grüße

 

Jan

Frequent Contributor
Beiträge: 109
Betreff: Keep Option im PROC Export

Hallo zusammen,

 

das kann ich so nicht bestätigen. Bei mir läuft der Export problemlos, auch wenn ich mehr als 60 Variablen und mehr als 420 Zeichen im Keep-Statement habe.

 

Jan, bei Deinem Beispiel "mit 60 Variablen hängt es" scheint es ein anderes Problem zu geben.

Wenn man sich die Fehlermeldung anschaut, dann scheint im Code auf die "a0006" (drei Nullen) verwiesen zu werden.

Wäre es möglich, dass die Variable "a00060" (drei Nullen plus eine am Ende) hier Probleme bereitet?

Da wäre der abgeschickte Code zur weiteren Untersuchung interessant.

 

@Ilja, auch hier, wäre der abgeschickte Code, bzw. ein Beispiel interessant.

 

Läuft bei Euch denn folgender Code?


data test;
a00001 = 1; a00002 = 1; a00003 = 1; a00004 = 1; a00005 = 1; a00006 = 1; a00007 = 1; a00008 = 1;
a00009 = 1; a00010 = 1; a00011 = 1; a00012 = 1; a00013 = 1; a00014 = 1; a00015 = 1; a00016 = 1;
a00017 = 1; a00018 = 1; a00019 = 1; a00020 = 1; a00021 = 1; a00022 = 1; a00023 = 1; a00024 = 1;
a00025 = 1; a00026 = 1; a00027 = 1; a00028 = 1; a00029 = 1; a00030 = 1; a00031 = 1; a00032 = 1;
a00033 = 1; a00034 = 1; a00035 = 1; a00036 = 1; a00037 = 1; a00038 = 1; a00039 = 1; a00040 = 1;
a00041 = 1; a00042 = 1; a00043 = 1; a00044 = 1; a00045 = 1; a00046 = 1; a00047 = 1; a00048 = 1;
a00049 = 1; a00050 = 1; a00051 = 1; a00052 = 1; a00053 = 1; a00054 = 1; a00055 = 1; a00056 = 1;
a00057 = 1; a00058 = 1; a00059 = 1; a00060 = 1; a00061 = 1; a00062 = 1; a00063 = 1; a00064 = 1;
a00065 = 1; a00066 = 1; a00067 = 1; a00068 = 1; a00069 = 1;
run;


Proc export data = test (keep = a00001 a00002 a00003 a00004 a00005 a00006 a00007
a00008 a00009 a00010 a00011 a00012 a00013 a00014 a00015 a00016 a00017 a00018 a00019 a00020 a00021
a00022 a00023 a00024 a00025 a00026 a00027 a00028 a00029 a00030 a00031 a00032 a00033 a00034 a00035
a00036 a00037 a00038 a00039 a00040 a00041 a00042 a00043 a00044 a00045 a00046 a00047 a00048 a00049
a00050 a00051 a00052 a00053 a00054 a00055 a00056 a00057 a00058 a00059 a00060 a00061 a00062 a00063
a00064 a00065 a00066 a00067 a00068 a00069)
outfile = "/home/xxx/test.csv" dbms=dlm replace ;
run;

Viele Grüße

Michael

Contributor
Beiträge: 24
Betreff: Keep Option im PROC Export

Hallo Michael,

 

ich glaube nicht, dass der Variablenname Probleme bereitet. Ich habe das auch mit anderen Namen ausprobiert, und da war auch ab eine bestimmten Länge Schluss. Außerdem deckt sich auch meine Länge von 417 mit den ca. 420 von Ilja.

Den abgesandten Code habe ich mit einem Macro generiert und steht in demLog nach mprint:

 

VG Jan

Occasional Contributor
Beiträge: 5
Betreff: Keep Option im PROC Export

Hallo,

 

ich kann den Fehler reproduzieren und er liegt m.E. nicht am KEEP-Statement sondern an dem internen SCL-Code, den SAS verwendet, um den DATASTEP für den Datenexport zu generieren.

Das ist ein echter Bug.

 

Am Ende meines Codes seht ihr einen Workaround für das Problem.

/* Eine andere Art eine Dataset mit 99 durchnummerierten und gleich initialisierten Variablen zu erzeugen
   -  Das gute alte ARRAY
*/
DATA test;
   LENGTH
      a0001 - a0099       8
   ;
   ARRAY
      arVariables    a0001 -- a0099
   ;

   DO OVER arVariables;
      arVariables = 1;
   END;

RUN;

/* Dieser PROC EXPORT läuft auf einen Fehler.
   -  Das muss ein Bug in SAS sein und zwar in dem Programmteil, der den Datasteop für den EXPORT zusmamenbaut.
   -  Das Problem liegt somit nicht am KEEP-Statement
*/
FILENAME outfile1 "C:\TEMP\test1.csv" LRECL=1000;
PROC EXPORT
   DATA     = test  (KEEP  =  a0001 a0002 a0003 a0004 a0005 a0006 a0007 a0008 a0009 a0010
                              a0011 a0012 a0013 a0014 a0015 a0016 a0017 a0018 a0019 a0020
                              a0021 a0022 a0023 a0024 a0025 a0026 a0027 a0028 a0029 a0030
                              a0031 a0032 a0033 a0034 a0035 a0036 a0037 a0038 a0039 a0040
                              a0041 a0042 a0043 a0044 a0045 a0046 a0047 a0048 a0049 a0050
                              a0051 a0052 a0053 a0054 a0055 a0056 a0057 a0058 a0059 a0060
                              a0061 a0062 a0063 a0064 a0065 a0066 a0067 a0068 a0069 a0070
                              a0071 a0072 a0073 a0074 a0075 a0076 a0077 a0078 a0079 a0080
                              a0081 a0082 a0083 a0084 a0085 a0086 a0087 a0088 a0089 a0090
                    )
   OUTFILE  = outfile1 DBMS=DLM REPLACE
   ;
RUN;

/* Workaround:
   Wenn man das Keep in einer View kapselt und dann die View (natürlich ohne KEEP) exportiert,
   funktioniert alles
*/
PROC SQL NOPRINT;
   CREATE VIEW vwTest AS
      SELECT   *
      FROM     test (KEEP  =  a0001 a0002 a0003 a0004 a0005 a0006 a0007 a0008 a0009 a0010
                              a0011 a0012 a0013 a0014 a0015 a0016 a0017 a0018 a0019 a0020
                              a0021 a0022 a0023 a0024 a0025 a0026 a0027 a0028 a0029 a0030
                              a0031 a0032 a0033 a0034 a0035 a0036 a0037 a0038 a0039 a0040
                              a0041 a0042 a0043 a0044 a0045 a0046 a0047 a0048 a0049 a0050
                              a0051 a0052 a0053 a0054 a0055 a0056 a0057 a0058 a0059 a0060
                              a0061 a0062 a0063 a0064 a0065 a0066 a0067 a0068 a0069 a0070
                              a0071 a0072 a0073 a0074 a0075 a0076 a0077 a0078 a0079 a0080
                              a0081 a0082 a0083 a0084 a0085 a0086 a0087 a0088 a0089 a0090
                    )
   ;
QUIT;

FILENAME outfile2 "C:\TEMP\test2.csv" LRECL=1000;
PROC EXPORT
   DATA     = vwTest
   OUTFILE  = outfile2 DBMS=DLM REPLACE
   ;
RUN;

 

Viele Grüße

Andreas

Esteemed Advisor
Beiträge: 6.646
Betreff: Keep Option im PROC Export

Das "riecht" ganz stark nach einem Fall für die SAS-Hotline bzw. Technical Support. Besonders weil ein unerwarteter Effekt in einer neueren SAS-Version auftritt, den es davor nicht gab.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Frequent Contributor
Beiträge: 109
Betreff: Keep Option im PROC Export

Hallo Jan,

 

jetzt bin ich total verbüfft. Ehrlich gesagt, wollte ich nicht so recht glauben, dass SAS per Macro einen Code generiert, der offensichtlich alle Zeichen enthält und anschließend bei der Verarbeitung den Code vermeintlich abschneidet.

Daher ja auch die Frage, ob mein Code (extra ohne Macro) bei Euch funktioniert.

Entschuldige bitte, da war ich auf der falschen Fährte.

 

Nachdem ich mir nun aber nochmal mein Log anschauen wollte, muss ich sagen, dass mein Code, der vor einer Stunde noch funktioniert hat nun mit dem gleichen Fehler wie bei Euch aussteigt. Das ist mir wirklich ein Rätsel. Auf unserer VA-Umgebung kann ich den Code (aktuell noch) problemlos ausführen.

 

Bei mehrmaliger Code-Ausführung bekomme ich auch unterschiedliche Fehler im Log. Das sieht wirklich nicht gut aus...

ERROR: The variable 'a0006ó'n in the DROP, KEEP, or RENAME list has never been referenced.

Herzliche Grüße

Michael

Occasional Contributor
Beiträge: 7
Betreff: Keep Option im PROC Export

Vielen Dank erstmal allen für die ausführlichen Antworten und tlw. Bestätigungen!

 

@jh_ti_bw

Ich habe nochmal nachrecherchiert - Du hast Recht, auch unter SAS 9.3 lief es nicht sauber durch, allerdings wurde da vermutlich nicht hart mitten im String abgeschnitten, sondern nach der letzten Variable, die noch in die erlaubten Zeichen reinpasste.

Dadurch kommen die Notes zustande (Variable XY is uninitialized).

 

Ich persönliche finde den Error in SAS 9.4 schlimmer, als die Notes in SAS 9.3, aber das mag anwendungsbezogen unterschiedlich wahrgenommenw erden.

Occasional Contributor
Beiträge: 5
Betreff: Keep Option im PROC Export

Hallo,

 

ich habe noch einen Nachtrag, der definitiv zeigt, dass beim EXPORT nach DBMS=dlm ein (bzw. mehrere) grobe Fehler vorliegen, wenn ein KEEP-Statement angegeben wird.

  1. Das folgende Beispiel zeigt, dass das KEEP beim Export mit DBMS=dlm auch dann nicht sauber berücksichtigt wird, wenn man die Listen-Notation für die Aufzählung von Variablen verwendet
  2. Das folgende Beispiel zeigt, dass das KEEP beim Export nach EXCEL immer sauber berücksichtigt wird
    • Das gilt, wenn viele Variablen einzeln benannt werden
    • Das gilt auch, wenn man die Listen-Notation für die Aufzählung von Variablen verwendet
/* Eine weitere Art mit ARRAYS Listen von Variablen anzusprechen */
DATA test2;
   LENGTH
      a0001 - a0050        8
      b                    8
      c0001 - c0050        8
   ;
   ARRAY
      arVariablesA      a0001 -- a0050
   ;
   ARRAY
      arVariablesC      c0001 -- c0050
   ;

   /* Einzelvariable initialisieren */
   b  = 1;

   /* Alle anderen Variablen initialisieren */
   DO i = 1 TO 50;
      arVariablesA (i) = 1;
      arVariablesC (i) = 1;
   END;

RUN;


/* Dieses Beispiel zeigt den Bug bei der Verarbeitung von KEEP beim Export nach DBMS=dlm:
   Variablenlisten im KEEP werden falsch aufgelöst.
   -  In der Exportdatei stehen späer nur 5 Variablen (statt 81), nämlich a0001, a0040, b, c0001 und c0040
*/
FILENAME outfile3 "C:\TEMP\test3.csv" LRECL=1000;
PROC EXPORT
   DATA     = test2 (KEEP  =  a0001 -- a0040
                              b
                              c0001 -- c0040
                    )
   OUTFILE  = outfile3 DBMS=DLM REPLACE
   ;
RUN;


/* PROC EXPORT nach EXCEL läuft fehlerfrei, auch wenn viele einzelne Variablen im KEEP aufgeführt werden 
   -  Die Zieldatei hat, wie erwartet, 81 Variablen
*/
PROC EXPORT
   DATA     = test2 (KEEP  =  a0001 a0002 a0003 a0004 a0005 a0006 a0007 a0008 a0009 a0010
                              a0011 a0012 a0013 a0014 a0015 a0016 a0017 a0018 a0019 a0020
                              a0021 a0022 a0023 a0024 a0025 a0026 a0027 a0028 a0029 a0030
                              a0031 a0032 a0033 a0034 a0035 a0036 a0037 a0038 a0039 a0040
                              b
                              c0001 c0002 c0003 c0004 c0005 c0006 c0007 c0008 c0009 c0010
                              c0011 c0012 c0013 c0014 c0015 c0016 c0017 c0018 c0019 c0020
                              c0021 c0022 c0023 c0024 c0025 c0026 c0027 c0028 c0029 c0030
                              c0031 c0032 c0033 c0034 c0035 c0036 c0037 c0038 c0039 c0040
                    )
   OUTFILE  = "C:\TEMP\test2.xlsx" DBMS=EXCEL REPLACE
   ;
RUN;

/* PROC EXPORT nach EXCEL läuft fehlerfrei, auch wenn die Listen-Notation verwendet wird 
   -  Die Zieldatei hat, wie erwartet, 81 Variablen
*/
PROC EXPORT
   DATA     = test2 (KEEP  =  a0001 -- a0040
                              b
                              c0001 -- c0040
                    )
   OUTFILE  = "C:\TEMP\test3.xlsx" DBMS=EXCEL REPLACE
   ;
RUN;

 

So lange dieser Bug besteht, muss man wohl den Workaround aus meiner vorhergehenden Antwort zu diesem Problem einsetzen.

 

Viele Grüße

Andreas

Frequent Contributor
Beiträge: 109
Betreff: Keep Option im PROC Export
Contributor
Beiträge: 24
Betreff: Keep Option im PROC Export

Hallo,

hier die Antwort des technischen Supports auf meine Anfrage

-->

Sehr geehrter Herr Heuer,

 

das von Ihnen festgetellte Verhalten wurde bereits mit SAS 9.4M4 gefixt, siehe Anhang. 

 

Wir empfehlen Ihnen Ihre SAS Installation auf SAS 9.4M4 zu heben und Ihr programm erneut zu testen.

 

Ich hoffe die Informationen helfen Ihnen weiter.

 

Mit freundlichen Grüßen

Hans-Jürgen Baumann

Technical Consultant ▪ Customer Support

Tel: + 49 6221 415 200 ▪ Fax: + 49 6221 415 44 250Support@sas.com

SAS Institute GmbH ▪ In der Neckarhelle 162 ▪ 69118 Heidelberg

www.sas.com/deutschland

SAS® ... THE POWER TO KNOW®

<--

 

Viele Grüße

Jan

Esteemed Advisor
Beiträge: 6.646
Betreff: Keep Option im PROC Export

Gratulation! Willkommen im Club derer, die einen echten SAS-Bug (wenn auch nicht als erster) entdeckt haben!

 

(Bei mir wars unterschiedliches Verhalten des $EBCDIC Formats von 8.0 auf 8.2, IIRC)

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers