Guten Tag,
Die Datei enthält mehrere rows, es wir aber nur die erste Zeile eingelesen. Woran kann es liegen?
ich habe es mit INFILE XXXX TRUNCOVER probiert.
Von welcher Plattform stammt die Datei (Windows, UNIX, sonstwas)?
Wie kommt die Datei vom Ursprung zum SAS-Server?
Irgendwo da passiert wahrscheinlich was.
Unter Windows solltest Du die Datei mit sowas wie notepad++ öffnen und dann auf Hexadezimal-Darstellung schalten; damit sieht man dann, wie die Zeilenenden kodiert sind.
Edit: SAS läuft unter UNIX, also ist das schon mal geklärt. Bleibt die Frage, wie die Datei zum UNIX-Server kommt, und von wo sie ursprünglich stammt. Im Notfall einen Exzerpt in ein zip-Archiv stellen und das hier anhängen.
Die Datei liegt auch auf UNIX.
wie sie zum Unix-Server kommt, weiß ich leider nicht. Ursprünglich war es eine txt-Datei.
mit INFILE XXX lrecl=106 recfm=f
habe ich es geschafft, dass auch andere Zeilen gelesen, aber mit fehlerhaften Einträgen.
Ich vermute, es liegt daran, dass
die Datei so aussieht:
a b c d
a b c d
a b c d
Wenn das so gestaffelt aussieht, dann ist höchstwahrscheinlich recfm=f korrekt, aber die lrecl zu kurz.
Einfach den Verschub von einer Zeile zur nächsten auszählen und das Ergebnis zur lrecl addieren.
Trotzdem ist es wichtig, die Struktur der Datei zu kennen. Auf Linux gibts das Tool hexdump zum Anzeigen einer Datei in Hexadezimal-Darstellung.
hexdump -C dateiname | head
zeigt einem die ersten 160 Zeichen. Falls mehr gebraucht wird, einfach (zB) -20 an das head anhängen.
Hallo,
beim Infile-statement option termstr = verwenden.
Es gibt die Optionen CRLF für Windows Zeilenenende mit x0D0A, CR für Mac Zeilenende mit x0D und LF für Unix-Zeilenende mit x0A
Ansonsten hat die Datei eventuell keinen Zeilenumbruch und der Versatz kommt nur aus dem automatischen Umbruch deines Editors. Schon mal die Fenstergröße geändert?
Viele Grüße
Jan
mit der Option termstr=lf klappt es leider nicht
Ina schrieb:
mit der Option termstr=lf klappt es leider nicht
Das sieht mir auch sehr nach einer FB-Datei vom Großrechner aus. Oder nach etwas, das genauso erstellt wurde.
Mit auszählen des Abstandes für lrecl hat es geklappt! Vielen Dank!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!